轻松使用AJAX WebControls的方法
我有一个正在尝试优化的Web应用程序。某些控件隐藏在对话框样式的" DIV"中。因此,我只想在用户希望看到它们时才通过AJAX加载它们。对于大多数基于文字的控件(各种菜单和小部件)来说,这很好,但是当我有所谓的"脏"控件时,它们会将大量信息写入" ViewState",在页面上放置大量CSS或者脚本,需要大量的引用,等等,这些似乎是不可能"移出页面"的,尤其是考虑到ASP.NET在回发时的反应。
我正在考虑某种步骤,在其中我重写Render,找到要移出的位的标记,然后在其中放置AJAX占位符,但不仅服务器开销看起来极端,而且感觉像是完全破解。此外,这里的关键元素是对话框,其中包含带有验证控件的表单,我无法想象如何移动控件及其所需的脚本。
在我疯狂的想象力中,我想这样做:
AJAXifier.AJAXify(ctlEditForm);
可悲的是,我知道这是一个梦想。
在不给服务器带来太多负载的情况下,我到底能达到多快的AJAX化程度?
解决方案
回答
第一步是使"肮脏"片段成为独立的用户控件
第二步是将这些控件嵌入到消费页面上
第三步是将每个用户控件标签包装在自己的Asp:UpdatePanel中
第四步是确保控件从需要读取的属性中读取所需的数据,这些属性会对照viewstate检查是否存在预先存在的值。我知道这会使代码依赖于丑陋的全局变量,但这是完成此任务的快速方法。
你的旅费可能会改变。
回答
从Telerik中检查RadAjax控件,它可以避免使用UpdatePanels,并通过声明调用控件之间的直接关系来限制服务器和客户端之间来回传递的信息量,并且在调用控件提交时应" Ajaxified"的控件回发。
回答
我建议我们这个周末走到当地的书店,喝杯咖啡,然后在Manning Press的《 Action in jQuery》中找到jQuery。继续阅读并在商店中阅读这本300页的书的第一章,然后在与我们产生共鸣的情况下购买。
我想让我们惊讶的是,jQuery使我们轻松执行此处的描述。从后台对服务器的ajax调用,到根据访问者的操作显示和隐藏div标签。我们必须编写的代码量非常少。
有很多不错的JavaScript库,这只是我喜欢的其中一个,而且确实很容易上手。首先使用标签将对当前jQuery文件的引用包括在内,然后编写几行代码与页面进行交互。