ran*_*ame 5 php ajax jquery image
我搜索了SO,每个问题似乎都在问如何等待 AJAX调用完成.我问如何不等待 AJAX调用完成.
我有一个电子商务网站,通过PHP进行一些繁重的图像处理.通过AJAX调用触发操作.
我正在尝试加快用户体验,所以我修改了代码,首先让PHP渲染一个缩略图(操作快速完成),然后触发第二个AJAX调用,告诉PHP渲染完整的图像(这可能需要一些分钟).
"添加到购物车"操作也是一个AJAX调用.问题是在上一次AJAX调用完成之前,"添加到购物车"调用无法完成.
序列:
相关的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 completes **/
$('#button-cart').click(function() {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: cart_data,
dataType: 'json',
success: function(json) {
if (json['success']) {
$('.success').fadeIn('slow');
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
我是否误解,或者即使呼叫B未完成,也应该呼叫C能够完成?
如果您认为 PHP正在保持这种体验,那么有没有一种方法可以让我触发PHP开始执行,但是仍然会将响应发送给缩略图AJAX调用?
根据我的经验,这是由PHP会话使用引起的,当你在代码中确定(所有ajax请求)你不必修改会话时,你应该调用:
session_write_close()
这将允许同时进行其他请求.
进一步阅读:http://www.php.net/manual/en/function.session-write-close.php
| 归档时间: |
|
| 查看次数: |
1265 次 |
| 最近记录: |