我正在使用asp.net和chrome,一段时间后页面变得无法响应。当我查看chrome调试时,我发现内存使用量增加到大约80MB,chrome会弹出一个请求来杀死页面。当弹出窗口出现时,错误计数器会旋转并产生大约30,000个错误。触发错误的是调用updatepanel。 chrome中显示的错误是“无法加载资源”。
更新面板:用户单击按钮,面板将刷新。页面上只有一个更新面板。
这就是我所拥有的:
function HistoryUIActions() {
$('.SelectDay, .SelectDay1Digit').click(function () { GetNewDate(this); });
};
function GetNewDate(thedateitem) {
var TheDay = $.trim($(thedateitem).html());
TheYear = 2011;
ThisMonth = 2;
DateString = ThisMonth + '/' + TheDay + '/' + TheYear;
__doPostBack('<%= TheUpdatePanel.ClientID %>', DateString);
};
function EndRequestHandler(sender, args) {
HistoryUIActions();
};
每次回发都会出现错误:1,4,11,26,57,120,247 ....最终Chrome会杀死页面。当我在函数中放置一个断点时,它会在我按下按钮后停止代码;然后在它到达__doPostBack行之后,它会再次启动GetNewDate函数,返回到click事件的行,显然执行上面显示的次数。
有什么建议吗?
答案 0 :(得分:3)
咄。 :)看了十几次后,我想我有答案,或者至少有一部分答案。
您的点击控件位于更新面板之外。然而,在每次刷新后,您调用“HistoryUIActions”将click事件与jQuery绑定。每次单击它时,这将使绑定到控件的单击事件数量翻倍。
点击处理程序是累积的。除非重新呈现控件的实际DOM元素,否则不需要重新绑定它。每次单击时都会添加重复的处理程序。
这应该解决多次刷新问题,然后你可以找出点击后没有正确加载的内容。