在每个Ajax调用上重新加载调用页面

时间:2017-03-08 12:49:49

标签: javascript php jquery ajax

我需要一个通过ajax调用的页面,以便在每次请求时完全重新加载。目前,当第一次请求它正确加载页面时,但是当第二次请求时,它会加载前一个结果,然后在2或3秒后加载新结果。

我希望它在将页面重新加载到我的div中时显示加载图像。

请参阅下面的代码I:

$io('#load_order_preview').on('click', function(){

            var portfolioName       = $io("#portfolioName").val();
            var instrumentType      = $io("#instrumentType").val();
            var securityName        = $io("#securityName").val();
            var orderType           = $io("#orderType").val();
            var priceType           = $io("#priceType").val();
            var quantityRequested   = $io("#quantityRequested").val();
            var orderTermName       = $io("#orderTermName").val();
            var limitPrice          = $io("#limitPrice").val();
            var stockPrice          = $io("#stockPrice").val();
            var stopPrice           = $io("#stopPrice").val();

            var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice;

             $io('#load_popup_modal_orderpreview').load(
                 'load-preview.php?' + dataString
             }).modal({
             backdrop: 'static',
             keyboard: false
             }).show();

        });

我真的很想帮助解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这个,不确定它是否适用于常规javascript,

     $io('#load_order_preview').on('click', function(){

var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName
                    + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested
                    + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice;

                 $io('#load_popup_modal_orderpreview').load(
                     'load-preview.php?' + dataString
                 }).modal({
                 backdrop: 'static',
                 keyboard: false,
cache: false
                 }).show();

});

基本上你的问题是缓存,当你重新加载页面时,它从缓存中获取值,当你重新加载2-3次时,它会从服务器中强制获取。

编辑==

如果缓存不是您的概率,并且由于花费2-3秒来反映新图像,因此浏览器的异步行为很可能。当您提出请求时,浏览器不会等待您的响应并继续前进,当它收到响应时它将对其进行操作。

解决方案,

尝试进行ajax调用,并在成功响应时执行您的活动

(最后一个选项而不是好的做法) 让你的呼叫异步为假,

 $io('#load_order_preview').on('click', function(){

var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName
                    + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested
                    + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice;

                 $io('#load_popup_modal_orderpreview').load(
                     'load-preview.php?' + dataString
                 }).modal({
                 backdrop: 'static',
                 keyboard: false,
cache: false,
async: false
                 }).show();

});

请注意,这会让您的浏览器等到服务器响应您的呼叫。