我正在尝试创建一个包含3个不同标记的地图,但目前每个标记都是随机出现的。我认为这是异步的一个问题。
测试网址在此处,地图显示在页面底部: http://www.comehike.com/hikes/hike_carpool.php?hike_id=125
有谁知道我做错了什么?
谢谢, 亚历
答案 0 :(得分:1)
你的意思是你看到你的标记在不同时间绘制,例如在开始你看到红色,然后是黄色,然后是蓝色。下次加载页面时,您会注意到先显示蓝色标记,然后显示黄色,然后显示红色标记。我的问题是否正确?如果是,那么不关心:)这取决于网络连接,服务器负载等。看看FireBug的Net选项卡,我第一次得到:
所以浏览器在请求了一段时间的marker_sprite后,同时开始请求smile.gif和car.jpg。实际上,您会看到maps.google.com更快地提供了请求(尽管请求稍后启动)。然后你的服务器(comehike.com)处理了对car.jpg的请求(虽然它是大的,1.3kb),然后是smile.gif(虽然它的大小只有174b,它是第一次请求的图像)。
下次我按下F5并从浏览器缓存中获取图像,但浏览器会发送一些请求,看看它们是否真的没有被更改:
注意,浏览器很早就开始请求有关car.jpg的信息,但是由于连接时间和等待结果需要花费很多时间(虽然它被缓存,因此浏览器只是等待确认)。再次,maps.google.com处理请求的速度比comehike.com快。
所以这不是关于ajax,它取决于浏览器何时会请求图像,以及服务器处理它的速度有多快(并且它取决于它的队列等......)。
如果您希望同时显示所有标记,则需要使用CSS Sprites并将所有标记图像合并到一个标记图像中。看看那里(任何文章都很好):