相关疑难解决方法(0)

使用jQuery的并行异步Ajax请求

我想根据多个ajax/json请求的结果更新页面.使用jQuery,我可以"链接"回调,就像这个非常简单的剥离示例:

$.getJSON("/values/1", function(data) {
  // data = {value: 1}
  var value_1 = data.value;

  $.getJSON("/values/2", function(data) {
    // data = {value: 42}
    var value_2 = data.value;

    var sum = value_1 + value_2;

    $('#mynode').html(sum);
  });

});
Run Code Online (Sandbox Code Playgroud)

但是,这导致请求是连续的.我更倾向于一种并行发出请求的方法,并在完成后执行页面更新.有没有办法做到这一点?

javascript ajax jquery

73
推荐指数
7
解决办法
9万
查看次数

防止jQuery AJAX调用等待上一次调用完成

我搜索了SO,每个问题似乎都在问如何等待 AJAX调用完成.我问如何不等待 AJAX调用完成.

我有一个电子商务网站,通过PHP进行一些繁重的图像处理.通过AJAX调用触发操作.

我正在尝试加快用户体验,所以我修改了代码,首先让PHP渲染一个缩略图(操作快速完成),然后触发第二个AJAX调用,告诉PHP渲染完整的图像(这可能需要一些分钟).

"添加到购物车"操作也是一个AJAX调用.问题是在上一次AJAX调用完成之前,"添加到购物车"调用无法完成.

序列:

  1. AJAX调用A生成请求缩略图.
  2. 呼叫A的成功回调:
    a.显示/启用"添加到购物车按钮"
    b.触发AJAX调用B,以生成完整图像.
  3. 单击"添加到购物车"会触发AJAX调用C,直到调用B完成后才会完成.

相关的javascript:

/** Call A - make call for thumbnail generation **/
$.ajax({
    url: 'index.php?route=decorable/image/thumbnail',
    type: 'post',
    data: image_data,
    dataType: 'json',
    success: function(json) {
        if (json['success']) {
            $('#button-cart').show();
            /** Call B - make call for *full* layout generation **/
            $.ajax({
                url: 'index.php?route=decorable/image',
                type: 'post',
                data: image_data,
                dataType: 'json'
             });
    });

/** Call C - this AJAX call starts, but does not complete, until call B …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery image

5
推荐指数
1
解决办法
1265
查看次数

标签 统计

ajax ×2

jquery ×2

image ×1

javascript ×1

php ×1