我继承了一个广泛使用telerik控件的Web应用程序。
一些页面在AJAX调用上相当沉重,通常在您选择组合项目时设置一些默认值(例如,选择一家公司,发送addr填充)。
前一天,这产生了一种奇怪的行为。第一个ajax调用可以工作,后续调用不会。无论你做哪一件都无所谓。第一个工作。
查看浏览器控制台,您会在页面加载
期间看到以下内容TypeError: n is undefined
此外,通过调用任何ajax调用,您将看到类似这样的消息
TypeError: n is undefined (source script resource ... axd file)
TypeError: Empty string passed to getElementById() (source jquery.js)
TypeError: b is null (source script resource ... axd file)
我尝试设置断点并查看调用链以查看哪些控件产生了这个。效率不高。
正如我上面提到的,只有第一个电话正在工作。随后的电话会中断。有什么帮助吗?
答案 0 :(得分:1)
希望这能节省一些时间。
我们在页面上不再需要一些控件。我把它们评论出去,这样我们就可以在下周改变主意时“让他们回来”。
我碰巧使用简单的HTML注释而不是.NET / VB注释<% - - %>
我相信发生的事情就是这样。后面的代码仍然知道控件。我可以验证这一点,因为它在代码中引用而不是抱怨。
服务器端,Telerik呈现JS代码以将事件处理程序分配给所有控件。客户端,因为控件实际上并不像预期的那样JS调用没有按预期工作。多数民众赞成,Telerik没有切实可行的方法来预测页面最终会是什么样子。客户端,他们可以在打电话之前检查是否存在。
使用VB注释,然后注释掉引用代码,或删除控件,:-)然后删除引用代码都可以解决问题。