【发布时间】:2013-02-25 22:10:06
【问题描述】:
我正在使用以下代码将数据从服务器异步拉入客户端。错误块中的警报报告服务器上发生的错误。但是,如果用户在调用过程中离开页面页面,这个块也会被触发并抛出一个空的警报容器。有什么方法可以更优雅地处理用户离开页面(即在他们离开之前不抛出空警报)?也许通过区分用户已经导航离开的错误块,而不是服务器上发生的错误?
$.ajax({
type: "GET",
url: "/handlers/myHandler.ashx",
async: true,
dataType: "json",
data: "var1=test_val&var2=test_val"
success: function (invoices) {
//Success block
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
【问题讨论】:
-
1) 您应该使用 HTML 元素来报告失败,而不是警报(这是一种非常陈旧且丑陋的信息提供方式)。 2)您可以尝试将
unload或beforeunload的钩子添加到设置变量以防止错误的页面,但我不知道事件的顺序是否正确。 3)如果消息为空,您可以简单地避免显示消息。 -
谢谢,我同意,为了方便起见,我们在应用程序的早期使用了“警报”。我会调查这些事件。
标签: jquery asynchronous error-handling