【问题标题】:jquery load between two urls两个url之间的jquery加载
【发布时间】:2012-05-03 03:52:36
【问题描述】:

我正在尝试以不同的时间间隔从 2 个不同的 URL 加载内容。理想情况下,我想加载一个 url 等待 10 秒加载另一个并一遍又一遍地重复。这就是我所拥有的,但它不能正常工作。它不断地来回快速加载网址,我无法阅读内容

setInterval(function(){
          $('#ticker').load('misc.php?users=10');
      }, 10000);

      setInterval(function(){
          $('#ticker').load('misc.php?news=10');
      }, 20000);

【问题讨论】:

标签: jquery


【解决方案1】:

我有更好的建议

var links = ['misc.php?users=10', 'misc.php?news=10'];
var pointer = 0;

setInterval(function() {
     $("#ticker").load(links[pointer++ % links.length]);
}, '10000');

Demo

【讨论】:

  • pointer++ 替换为pointer++ % links.length,您的解决方案将有效。另外,我会去掉 '10000' 周围的引号,因为它应该是一个数字。
  • @Blender,哦,是的.. 溢出问题。谢谢,这是一个好点。 :)
  • @Starx 来回切换的速度太快了,我无法阅读。你如何让加载misc.php?users=10 等待 10 秒加载misc.php?news=10 并一遍又一遍地重复此操作
  • @Mr.1.0,检查更新,它的工作。我创建了一个演示
【解决方案2】:

您可以尝试使用.load 的回调函数。

$('#ticker').load('misc.php?users=10', function(){
    setInterval( function(){ 
        $('#ticker').load('misc.php?news=10'); 
    }, 10000 );
});

【讨论】:

  • 这就是我想要的。我不认为我解释清楚,但我想加载 misc.php?users=10 等待 10 秒然后加载 misc.php?news=10 等待 10 秒加载 misc.php?users=10 并一遍又一遍地继续这个过程
【解决方案3】:

您是否设置了超时,因为您想确保首先读取第一个 URL,然后按顺序读取第二个 URL?如果是这样的话,我可能会建议一个新模式,就像这样......

(function($) {
    var fn1 = function () {
        $.ajax({ 
          url: 'misc.php?users=10'
        }).done(function (data) {
          // update #ticker html with new user data
        }).always(function () {
          fn2(); // whether we succeed or not, we move on to fn2
        });
      }
      , fn2 = function () {
        $.ajax({
          url: 'misc.php?news=10'
        }).done(function (data) {
          // update #ticker html with new news data
        }).always(function () {
          fn1(); // whether success or failure we start over on fn1
        });
      };

      // ... somewhere down the line ...

      $('#ticker').on('load', fn1); // start polling
})(jQuery);

我们在这里所做的是以某种同步的方式进行异步调用,而不需要混乱的超时或间隔调用。这可以保持 URL 的顺序,而不会在 AJAX 请求中重叠或纠缠在一起。一个完成后,另一个重新开始,不断轮询,直到我们切换到不同的页面。

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多