我们在标签条上有一个Telerik RadEditor页面。有些情况下,RadEditor包含大量的html,并且在回帖以切换选项卡时,其所有内容都将回发到服务器。这导致巨大的性能损失(有时候回发发送数十个MiB数据)。 是否有可能以这样的方式调整RadEditor,使其在回发时不将其内容发送到服务器?我们的代码隐藏不依赖于RadEditors Content属性访问器(不显式读取其内容),只依赖于其mutator(其内容是从控件的代码隐藏中设置的)。 甚至可以使用任何Telerik控件执行此类操作,如果是,那么我们如何实现这样的结果呢?
值得指出的是,我们使用相对较旧的Telerik UI版本(2013.2.611.35),目前我们无法切换到更新的版本。
提前谢谢。
答案 0 :(得分:1)
考虑使用 PageViews 的 ContentUrl 。这样您就可以在iframe中加载单独的页面,这样它们就可以独立于主页面进行回发。因此,您可以拥有一个包含编辑器的独立页面和其他选项卡的独立页面。
关于从POST请求中排除某些内容的可能性 - 我不知道如何做到这一点,因为它不应该发生。重点是将当前页面状态传输到服务器。
您可以考虑的另一个选项是使用AJAX和PageRequestManager的beingRequest事件来尝试删除编辑器。我没有尝试过,我不知道它是否会真正解决,因为在回发开始之前,JS引擎处理的数据可能太多了。这里有一些代码说明了这个想法:
var currContent = null;
function BeginRequestHandler(sender, args) {
var editor = $find("<%=RadEditor1.ClientID%>");
currContent = editor.get_html(true);
editor.set_html("");
}
function EndRequestHandler(sender, args) {
var editor = $find("<%=RadEditor1.ClientID%>");
editor.set_html(currContent);
currContent = null;
}
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);