Jquery setInterval 在 Firefox 上完美运行,但在 IE8 上不起作用
我编写了一个简单的代码来从 PHP 文件中获取内容并每 30 秒刷新一次。 它在 FireFox 上运行得很好,但在 IE8 中只加载一次内容! 任何人都可以帮我解决它吗?
这是我的代码:
<script>
var content;
var temp = "something";
$.get('refresh.php', function(data) {
content = data;
})
.success(function() {
if (temp != content) {
$("#success").fadeOut(2000, function ()
{
$("#success").html(content).fadeIn(2000);
}
); // end .fadeOut
temp = content;
}
}) //end .success
.error(function() { $("#success").html("error"); });
var refreshId = setInterval(function()
{
$.get('refresh.php', function(data) {
content = data;
})
.success(function() {
if (temp != content) {
$("#success").fadeOut(2000, function ()
{
$("#success").html(content).fadeIn(2000);
}
); // end .fadeOut
temp = content;
}
}) //end .success
.error(function() { $("#success").html("error"); })
}, 27000);
</script>
在 PHP 代码上我有以下代码:
echo rand();
i wrote a simple code to get content from PHP file and refresh it every 30 second .
it worked pretty on FireFox , but in IE8 only load contents one time !
can any body help me to fix it ?!
This is my Code :
<script>
var content;
var temp = "something";
$.get('refresh.php', function(data) {
content = data;
})
.success(function() {
if (temp != content) {
$("#success").fadeOut(2000, function ()
{
$("#success").html(content).fadeIn(2000);
}
); // end .fadeOut
temp = content;
}
}) //end .success
.error(function() { $("#success").html("error"); });
var refreshId = setInterval(function()
{
$.get('refresh.php', function(data) {
content = data;
})
.success(function() {
if (temp != content) {
$("#success").fadeOut(2000, function ()
{
$("#success").html(content).fadeIn(2000);
}
); // end .fadeOut
temp = content;
}
}) //end .success
.error(function() { $("#success").html("error"); })
}, 27000);
</script>
and on PHP code i have this code :
echo rand();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
IE 将缓存 ajax 结果。将其放在 $.get() 调用之前:
IE will be caching the ajax result. Put this before your $.get() calls:
避免方法链中间的换行和注释;最好的情况是它很丑陋,最坏的情况是并不是所有的 js 引擎都能正常工作。另外,您可以将
content
的声明移至外部闭包中,并缓存$("#success")
的结果。Avoid line breaks and comments in the mid method-chain; at best it's just ugly, at worst not all js engines will play ball. Also, you can move the declaration of
content
into the outer closure and cache the result of$("#success")
.IE 兑现所有 get 请求,试试这个:
IE cashing all get requests, try this: