20

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

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

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

AJAXifier.AJAXify(ctlEditForm);

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

在不给服务器造成过多负载的情况下,我能真正接近快速简单的 AJAXification 吗?

4

3 回答 3

5

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

于 2008-08-05T14:19:26.860 回答
2

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

我认为您会惊讶于 jQuery 让您执行您在此处描述的内容的简单程度。从后台对服务器的 ajax 调用,到根据访问者的操作显示和隐藏 div 标签。您必须编写的代码量非常少。

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

于 2008-09-05T15:54:18.620 回答
1

第一步是让你的“脏”块独立的用户控件

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

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

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

你的旅费可能会改变。

于 2008-08-05T14:19:01.700 回答