我有一个图片网格(3x3,并排,在一个布局)。我需要经常更新这个网格。由于每张图片都独立于其他图片(它们从不同的位置被抓取),我选择通过自己的ajax回调加载每张图片,如下所示:
for (var i=0; i < numPictures; i++) {
Dajaxice.loadPicture(callback_loadPicture, {'picture_id':i})
}
函数callback_loadPicture()将图片放入其中的适当位置。
问题是:通常,即使某些图片比其他图片更快完成加载,浏览器也不会显示任何内容,直到最后一次ajax调用完成。由于某些调用可能会超时,这意味着在单张图片超时之前我没有看到任何内容。
这在每个浏览器中的表现略有不同:有时图片会在回调结束时显示(但通常不会),有时浏览器会显示一些图片,但推迟显示所有图片,直到最后一个完成加载。
我正在使用:
我愿意改变我的代码结构。
任何意见或建议都将受到赞赏。
答案 0 :(得分:1)
由于chrisdpratt所说的ajax调用是阻塞的,如果你真的需要同时显示图像,我会建议某种类型的3x3网格图像预加载,当代码需要时你可以显示它们。
考虑到这一点,您可以运行$(document).ready()
上已有的代码,但隐藏图片(即display:none
)。稍后需要时,您只需更改需要显示的图像的显示属性。
答案 1 :(得分:1)
如果您遇到的问题确实是由Django开发服务器的单线程实现引起的,您可以尝试django-devserver
(https://github.com/dcramer/django-devserver)。除了其他改进之外,它还拥有:
“改进的运行服务器,允许您同时处理请求。”
其他改进也值得!