我有一个带有AJAX购物车的网站。概念非常简单:您在产品页面上可以点击“立即购买”按钮。当您这样做时,JavaScript代码将产品添加到购物车中,更改购物车的可视化效果并向服务器发送AJAX请求以报告更改。
我在想的是,由于客户端和服务器可能需要一段时间来处理AJAX请求,那么在AJAX成功报告之前,客户端点击链接移动到另一个页面(例如“下一个产品”),是否会完全停止AJAX请求?
此外,我已经计时了AJAX请求。如果用户在这些定时请求发生之前点击链接,那么这些请求肯定会丢失。假设点击不会取消AJAX请求,那么在unload事件中启动一个请求是否有效?使用cookie是否比尝试另一个AJAX请求更好/更安全?(虽然如果用户点击外部链接,则unload确实是我能想到的唯一解决方案来保存该数据...)
另外注意:我不想在用户添加物品到购物车时使屏幕变暗,这样用户就可以继续进行其他操作...但是如果需要在单击链接之前确认AJAX,我必须确保在此之前不能使用单击。
更新:
我认为你们中的一些人没有理解重点。我不关心客户端调用done()或completed()函数。我关心的是最终确保我在服务器上获得所有数据。
我知道这是异步的,但我想确保避免数据丢失,特别是如果链接转到另一个网站(对于同一个网站,我真的考虑利用cookie来确保延迟的AJAX请求的数据无论如何都能到达服务器。)
此外,定时数据请求的想法是为了避免对服务器造成沉重负载。通过适当计时的一组AJAX请求,客户端和服务器都能更好地工作!
我在想的是,由于客户端和服务器可能需要一段时间来处理AJAX请求,那么在AJAX成功报告之前,客户端点击链接移动到另一个页面(例如“下一个产品”),是否会完全停止AJAX请求?
// prepare request...
...snip...
// send request (usually a POST)
jQuery.ajax(uri, ajax_options);
// return to user
// will a click on a link cancel the AJAX call after this point?
此外,我已经计时了AJAX请求。如果用户在这些定时请求发生之前点击链接,那么这些请求肯定会丢失。假设点击不会取消AJAX请求,那么在unload事件中启动一个请求是否有效?使用cookie是否比尝试另一个AJAX请求更好/更安全?(虽然如果用户点击外部链接,则unload确实是我能想到的唯一解决方案来保存该数据...)
另外注意:我不想在用户添加物品到购物车时使屏幕变暗,这样用户就可以继续进行其他操作...但是如果需要在单击链接之前确认AJAX,我必须确保在此之前不能使用单击。
更新:
我认为你们中的一些人没有理解重点。我不关心客户端调用done()或completed()函数。我关心的是最终确保我在服务器上获得所有数据。
我知道这是异步的,但我想确保避免数据丢失,特别是如果链接转到另一个网站(对于同一个网站,我真的考虑利用cookie来确保延迟的AJAX请求的数据无论如何都能到达服务器。)
此外,定时数据请求的想法是为了避免对服务器造成沉重负载。通过适当计时的一组AJAX请求,客户端和服务器都能更好地工作!