用户交互时,AJAX调用并不总是加载

时间:2011-09-09 11:02:19

标签: php jquery ajax

我遇到了一些涉及PHP和PHP的问题。 AJAX使用jQuery。为了使整个解释更容易,我将简单地给出我正在处理的网站的链接,如果您使用“报价计算器”选项卡并按照步骤操作,您应该希望了解我的问题

http://bothrealities.very-dev.co.uk/green-it

万一你不这样做,这里有一个解释:

当我点击单选按钮时;模型部分中的单选按钮(通过AJAX从PHP文件和数据库中回调数据),右侧的信息框并不总是填充,有时似乎数据卡在缓存中。您可以单击某个模型,然后再次单击您之前选择的模型填充信息框(就好像只需单击一下)

现在我不确定是否是用户点击按钮的速度,从而打破了原始的AJAX调用?

我不知道是否需要让页面禁用/灰显,并且在数据恢复之前有一个加载轮,这样用户就不会干扰这个过程了?

如果上述解释令人困惑,我很抱歉,我建议您访问上面的链接并亲自尝试一下,这样理解起来要容易得多。

非常感谢你提前解决这个问题的人,我甚至可能会在这篇文章上小小的赏金。

谢谢,

P.s我还不确定如何添加赏金,抱歉。

编辑:::

    function productString(product, box) {
        $.get("http://<? echo ROOT; ?>includes/forms.php", { product: product }, function(data) {
            $("#loadingModel").append(data);
        });

        $.get("http://<? echo ROOT; ?>includes/forms.php", { box: box }, function(data) {
            $("#content-right").empty();
            $("#content-right").append(data);
            $("#content-right").jScroll();
        });
    }

    function modelString(model, boxModel) {
        $.get("http://<? echo ROOT; ?>includes/forms.php", { model: model }, function(data) {
            $("#loadingData").empty().append(data);
        });

        $.get("http://<? echo ROOT; ?>includes/forms.php", { boxModel: boxModel }, function(data) {
            $("#boxModel").empty().append(data);
        });
    }

2 个答案:

答案 0 :(得分:2)

有时您的http://bothrealities.very-dev.co.uk/includes/forms.php?boxModel=1http://bothrealities.very-dev.co.uk/includes/forms.php?model=xxxxx结束之前结束,因此第二次请求中返回的数据不是您想要获得的数据。

您也可以尝试在第二个“GET”中传递模型参数。

答案 1 :(得分:1)

“加载轮”肯定会帮助用户(正在发生的事情)。 我没有查看代码,但这里是你如何调试它。

  1. “擦除”AJAX通话前的方框。
  2. 在回调函数中,使用console.log(ajaxcontent)来确保从ajax获得了预期的内容。 (这是firebug的一个很好的功能 - 一个firefox插件)
  3. 更新框。
  4. 我希望这会有所帮助。