使用Jquery和Ajax进行部分页面刷新以获得XIV秒数?
问题描述:
1)我必须根据每x秒的值动态更改图像。使用Jquery和Ajax进行部分页面刷新以获得XIV秒数?
我使用下面的函数:
setInterval(function() {
$("#content").load(location.href+" #content>*","");
}, 5000);
它工作正常的更新值,但图像不会得到更新到它的位置。
2)从第一个问题,我想知道包含在head标签中的jquery和css文件是否会每x秒加载一次。如果不是如何加载?
请给我建议。
答
如果您要返回一个完整的HTML页面并将其返回到另一个页面的主体中,那么这是一个坏主意。
想想看,你的HTML结构将类似于
<doc type>
<html>
<head>
</head>
<body>
<div>
<doc type>
<html>
<head>
</head>
<body>
<div>
</div>
</body>
</html>
</div>
</body>
</html>
理想情况下,你应该重新调整只是要显示的,不是一切内容。
如果您只是更新图像,通常不需要进行XHR呼叫。您可以设置图像src并强制浏览器以这种方式更新该内容。
答
这是否需要使用Ajax完成?你打算循环多少张图片?如果只有少数几个,只需将所有的src保留在页面上并定期切换图像的src属性即可。这不需要重新加载页面。您也可能需要预先加载所有图像,以便在切换到其他图像时不会闪烁。例如:
$(function() {
var images = ['1.png', '2.png', '3.png'];
$.each(images, function (index, src) {
$("<img />").attr('src', src); //preload
});
var keep = 1;
setInterval(function() {
$("#main_img").attr('src', images[keep]);
keep++;
if (keep >= images.length) { keep = 0; }
}, 5000);
});
现在,如果你不想硬编码在JS图片网址,你可以先用一个Ajax请求加载它们。
如果您正在讨论一组不可预知的图像或大量图像,我只会推荐使用Ajax来完成所有工作。