相关疑难解决方法(0)

JavaScript是多线程的吗?

这是我的问题 - 我需要使用jQuery.getScript()动态下载几个脚本,并在加载所有脚本后执行某些JavaScript代码,所以我的计划是做这样的事情:

function GetScripts(scripts, callback)
{
  var len = scripts.length
  for (var i in scripts)
  {
    jQuery.getScript(scripts[i], function() 
    {
      len --;
      // executing callback function if this is the last script that loaded
      if (len == 0)
        callback()  
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我们假设每个脚本的script.onload事件触发并按顺序和同步执行,那么这只能可靠地工作,所以当两个或多个事件处理程序通过检查(len == 0)并执行时,永远不会出现这种情况.回调方法.

所以我的问题 - 这个假设是正确的,如果没有,那么实现我想做的事情的方法是什么?

javascript jquery

56
推荐指数
6
解决办法
5万
查看次数

Javascript/jQuery中的并行Ajax调用

我是Javascript/jquery世界的新手,需要一些帮助.现在,我正在编写一个html页面,我必须进行5次不同的Ajax调用才能获取数据以绘制图表.现在,我正在调用这样的5个ajax调用:

$(document).ready(function() {
    area0Obj = $.parseJSON($.ajax({
        url : url0,
        async : false,
        dataType : 'json'
    }).responseText);

    area1Obj = $.parseJSON($.ajax({
        url : url1,
        async : false,
        dataType : 'json'
    }).responseText);
.
.
.
    area4Obj = $.parseJSON($.ajax({
        url : url4,
        async : false,
        dataType : 'json'
    }).responseText);

    // some code for generating graphs

)} // closing the document ready function 
Run Code Online (Sandbox Code Playgroud)

我的问题是,在上面的场景中,所有的ajax调用都是串行的.也就是说,1次调用完成后2次启动,2次完成3次启动等等.每次Ajax调用大约需要5到6秒才能获取数据,这使得整个页面在大约30秒内被加载.

我尝试将异步类型设为true,但在这种情况下,我没有立即获取数据来绘制图表,这违背了我的目的.

我的问题是:如何将这些调用并行,以便我开始并行获取所有这些数据,并且可以在更短的时间内加载我的页面?

提前致谢.

html javascript ajax jquery

12
推荐指数
1
解决办法
1万
查看次数

jQuery延迟 - 我需要管道或链来实现这种模式吗?

我正在尝试实现下面的场景,使用JQuery延迟,没有太多运气.

您将使用延迟api的哪些部分,以及如何构建调用以实现以下目标:

第一个ajax callA到serviceA检索ID列表

等到这个电话回来

然后n ajax调用serviceB,每次调用使用callA返回的列表中的Id

等到所有serviceB调用都返回

然后是对serviceC的最终ajax调用

javascript ajax jquery jquery-deferred

6
推荐指数
1
解决办法
2488
查看次数

标签 统计

javascript ×3

jquery ×3

ajax ×2

html ×1

jquery-deferred ×1