需要帮助一次处理多个jquery $ .get调用

时间:2009-03-12 13:58:22

标签: jquery ajax

我是新来的,我很困难。我需要帮助。希望有人可以告诉我,我的问题是一个非常简单的解决方案Smile

我有一个网站,您可以点击链接并在“窗口”中打开相关内容。这一切都来自同一个领域。无论如何,当你点击让我们说... 5链接非常快时,我的问题就出现了。会发生什么是只有1或2个窗口获得内容。发生的事情是,当其中一个首次呼叫结束时,它似乎优先于最近的呼叫。

基本上,我想知道如何处理多个.get调用并将每个调用加载到一个单独的窗口中,而不会干扰其他窗口。这是处理它的函数:

popupWindow.prototype.openURL = function(link){
       windowname=this.windowname;
   theWindow="."+windowname+"_window .window .content";
   $(theWindow).hide();
        $(theWindow).html('<p class="page-loading"><img src="graphics/loading.gif" alt=""/></p>').fadeIn("medium");

   $.get(link, function(data) {
      $(theWindow).hide();
      $(theWindow).html(data).fadeIn("medium");
   });
}

上面的代码可以很好地点击链接...慢慢地。或者一次一个。如果有人可以提供帮助,请告诉我。

3 个答案:

答案 0 :(得分:4)

试试:

var theWindow = "." + this.windowname + "_window .window .content";

var会将变量的范围更改为函数,并希望解决此并发问题。

并且...尽可能使用ID ...

答案 1 :(得分:3)

您的theWindow变量是隐含的全局变量。每次调用openURL时,都会覆盖theWindow

您只需将其更改为var theWindow = ..

即可解决此问题

答案 2 :(得分:1)

你们很棒。我是javascript的新手,所以我很容易将我的局部变量\全局变量\对象属性混淆。我通过本地化该函数中声明的每个变量,并将数据(一旦检索到)发送到该对象的单独函数(我称之为“handleDataRequest(data)”)来解决问题。

现在每个窗口都会将内容加载到自身中,并且不与其他窗口冲突!

谢谢你们。到目前为止,这是我网站的最大障碍。

兴奋地跳上跳下