jquery如何显示从ajax请求收到的图像?

时间:2010-03-15 20:23:39

标签: jquery ajax json

我的工作很棒,但我希望能更深入地了解幕后的实际情况。

我使用Jquery的Ajax方法来提取5篇博文(仅返回标题和第一张照片)。一个PHP脚本抓取博客文章的标题和第一张照片,并将其粘贴在一个数组中,然后将其作为JSON发送回我的浏览器。

收到JSON对象后,Jquery会抓取JSON对象的第一个成员并显示它的标题和照片。在我创建的图库中,使用按钮 - 用户可以迭代1-5个帖子。

因此,实际的AJAX调用会立即发生,而且只会发生一次。我基本上使用这种设置:$('my_div')。html(json_obj [i])并且每次点击都会执行i ++。

所以jquery从我的计算机内存,我的网络浏览器缓存或Javascript引擎中的某种缓存中提取这些博客文章?

它返回的一件事是一个非常粗糙的GIF动画。我只是想知道它是否经常在后台运行(但不可见),窃取处理周期等等。或者Javascript只是插入(比如一个flash电影)进入DOM,但之前只做了一点点内存(没有处理)。

无论如何,我只是好奇。如果有人是这方面的大师,我很想听听你的看法。谢谢!!

3 个答案:

答案 0 :(得分:2)

返回的JSON包含用于显示标题和图像的html。

当json包含的img元素被添加到DOM(<img src="blah">)时,浏览器实际上将图像下载到缓存中。此时,图像只是一堆二进制数据,在Web浏览器解释并在屏幕上显示之前不会变成任何东西。您的动画GIF不会占用任何处理周期或额外的内存,直到它实际显示在屏幕上。

答案 1 :(得分:1)

JavaScript什么都不做。它只存储您在内存中插入的任何内容(链接到外部图像,文本等)。当您将其插入DOM时,您的浏览器会通过显示文本和图形来处理内容,而文本和图形又可以直接从外部服务器或浏览器缓存加载。

答案 2 :(得分:0)

看起来你将json保存在一个数组中并在点击时将它发送给dom。 json数组中的东西不会以这种方式进行任何处理循环。