我有一些非常复杂的基于PHP / MySQL的AJAX例程,它们在我的应用程序中的某些点运行。我不断遇到的问题是,当AJAX例程仍在运行时,用户浏览基页,并在现场杀死XHR请求时出错。
也许这是客户端与服务器端的问题?我是否需要花费更耗时的AJAX例程并使它们成为主脚本的一部分?也许有一种方法可以暂停所有浏览,而任何AJAX例程都在运行,我还没找到?我知道我可以随时抛出一个"装载/等待/去吃三明治"对话,但我发现那些非常烦人,我的用户也是如此。
任何帮助/建议/理念都赞赏。
答案 0 :(得分:1)
你不能暂停浏览本身,但你可以在整页阴影之上咳出一个体面的'等待,加载'块,警告用户事情正在发生。那,或通过javascript禁用页面上的每个href,这是不可取的。 :)
除此之外,您无法控制客户端。
P.S。:如果通过“对话”你的意思是一个警报,立即用火来杀死那个想法。
答案 1 :(得分:0)
我认为等待很长时间才能获得响应的请求击败了“幕后”通信的ajax概念。
我建议你将你的行动分成一个命令(“请这样做”)和一个状态(“你完成了吗??”)。通过这种方式,您可以在服务器完成其操作时更新页面,而不是没有充分理由保持请求通道(这对于并发用户支持也很有用,如果每个访问者都很快就会用完它们将保持你的连接很长时间。)