Jquery setInterval 在 Firefox 上完美运行,但在 IE8 上不起作用

发布于 2025-01-07 12:00:54 字数 1086 浏览 1 评论 0原文

我编写了一个简单的代码来从 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我的黑色迷你裙 2025-01-14 12:00:54

IE 将缓存 ajax 结果。将其放在 $.get() 调用之前:

$.ajaxSetup({
    cache: false
});

IE will be caching the ajax result. Put this before your $.get() calls:

$.ajaxSetup({
    cache: false
});
你爱我像她 2025-01-14 12:00:54

避免方法链中间的换行和注释;最好的情况是它很丑陋,最坏的情况是并不是所有的 js 引擎都能正常工作。另外,您可以将 content 的声明移至外部闭包中,并缓存 $("#success") 的结果。

var refreshId = setInterval(function() {
    var $success = $("#success");
    var content;
    $.get('refresh.php', function(data) {
        content = data;
    }).success(function() {
        if (temp != content) {
            $success.fadeOut(2000, function () {
                $success.html(content).fadeIn(2000); 
            });
            temp = content;
        }
    }).error(function() { $success.html("error"); });
}, 27000);

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").

var refreshId = setInterval(function() {
    var $success = $("#success");
    var content;
    $.get('refresh.php', function(data) {
        content = data;
    }).success(function() {
        if (temp != content) {
            $success.fadeOut(2000, function () {
                $success.html(content).fadeIn(2000); 
            });
            temp = content;
        }
    }).error(function() { $success.html("error"); });
}, 27000);
佞臣 2025-01-14 12:00:54

IE 兑现所有 get 请求,试试这个:

$.get('refresh.php?'+ (new Date().getTime()), function(data) {
    content = data;
    })
...

IE cashing all get requests, try this:

$.get('refresh.php?'+ (new Date().getTime()), function(data) {
    content = data;
    })
...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文