我需要一个通过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();
});
我真的很想帮助解决这个问题。
提前致谢。
答案 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();
});
请注意,这会让您的浏览器等到服务器响应您的呼叫。