我有一个正在尝试优化的网络应用程序。一些控件以对话框样式隐藏 DIVs. 。因此,我希望仅当用户想要查看它们时才通过 AJAX 加载它们。这对于大多数基于文字的控件(各种菜单和小部件)来说很好,但是当我拥有所谓的“脏”控件时 - 那些将大量信息写入到的控件 ViewState, 、在页面上放置大量 CSS 或脚本、需要大量引用等 - 这些似乎不可能“移出页面”,特别是考虑到 ASP.NET 对回发的反应。

我正在考虑某种步骤,我可以覆盖渲染,找到我想要移出的位的标记,并将 AJAX 占位符放入其中,但不仅服务器开销看起来很大,而且感觉像是一个完整的黑客攻击。此外,这里的关键元素是包含带有验证控件的表单的对话框,我无法想象如何移动控件 他们所需的脚本。

在我狂热的想象中,我想这样做:

AJAXifier.AJAXify(ctlEditForm);

可悲的是,我知道这是一个梦。

在不给服务器造成过多负载的情况下,我能真正实现快速、简单的 AJAX 化吗?

有帮助吗?

解决方案

查看 RadAjax 来自 Telerik 的控件 - 它允许您避免使用 UpdatePanel,并通过声明调用控件之间的直接关系以及调用控件提交回发时应“Ajaxified”的控件来限制服务器和客户端之间来回传递的信息量。

其他提示

我建议您这个周末去当地的书店,喝杯咖啡,找到 Manning Press 的《jQuery in Action》。去商店阅读这本 300 页书的第一章,如果它引起你的共鸣,就购买它。

我想您会对 jQuery 让您执行您所描述的操作如此简单感到惊讶。从后台对服务器的 ajax 调用,到根据访问者的操作显示和隐藏 div 标签。您需要编写的代码量非常小。

有很多很好的 JavaScript 库,这只是我喜欢的其中之一,而且它确实很容易上手。首先使用标签包含对当前 jQuery 文件的引用,然后编写几行代码来与页面交互。

第一步是让你的“脏”部分自包含用户控件

第二步是将这些控件嵌入到您的使用页面上

第三步是将每个用户控件标记包装在它们自己的 Asp:UpdatePanel 中

第四步是确保您的控件通过从属性中读取来获取所需的数据,这些属性检查视图状态中是否存在预先存在的值。我知道这会使您的代码依赖于丑陋的全局变量,但这是完成此任务的快速方法。

你的旅费可能会改变。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top