简单的AJAX WebControls方式

问题描述 投票:16回答:3

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

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

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

AJAXifier.AJAXify(ctlEditForm);

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

如何在不造成服务器过多负载的情况下真正接近快速简便的AJAX化?

asp.net ajax web-controls
3个回答
4
投票

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


2
投票

我建议你这个周末走到你当地的书店,喝一杯咖啡,然后在曼宁出版社找到jQuery in Action。继续阅读商店中这本300页书的第一章,然后如果它与你产生共鸣就买它。

我想你会惊讶于jQuery让你在这里执行你所描述的内容。从ajax调用后台服务器,根据访问者的操作显示和隐藏div标签。你必须编写的代码量非常小。

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


1
投票

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

第二步是在消费页面上嵌入这些控件

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

第四步是通过从属性中读取属性来确保您的控制获取所需的数据,这些属性针对预先存在的值检查视图状态。我知道这会让你的代码依赖于丑陋的全局变量,但这是完成这项工作的快捷方法。

你的旅费可能会改变。

© www.soinside.com 2019 - 2024. All rights reserved.