ASP.NET WebForm中的jQueryMobile

时间:2011-12-29 01:12:55

标签: javascript jquery asp.net jquery-mobile webforms

在ASP.Net Web Form应用程序中使用jQueryMobile是一种正确的方法吗?在ASP.NET Web窗体中使用jQueryMobile或其他Mobile JS库的优缺点是什么?

2 个答案:

答案 0 :(得分:11)

ASP.NET Web Forms是一个很好的框架,但是您不需要将其大部分内容用于使用JavaScript UI框架进行移动开发。我将首先列出缺点,然后是替代方案,最后在必须使用Web表单时给出一些提示,尽管有缺点。


ASP.NET Web窗体的问题在于您并不总是完全控制HTML。这可以通过using control adapters来缓解,避免使用certain controls,并在控件和页面上使用EnableViewState属性。 ASP.NET Web Forms 4.0还可以缓解一些问题,如unpredictable client IDs。但是,所有这些确实增加了额外的工作,只是为了解决ASP.NET Web窗体的本质。

此外,大多数Web控件将emit JavaScript进入ASP.NET Web窗体回发模型的页面中。例如,使用<asp:DropDown AutoPostBack="true"><asp:TextBox OnTextChanged="..." ><asp:Panel DefaultButton="...">。如果您的开发风格主要是服务器端,并且您很高兴不必担心使其全部工作在客户端,那么这非常好。

<asp:UpdatePanel>是另一个很好的例子:你将它添加到页面中,你可以灵活地启用AJAX页面。但它渲染了相当多的JavaScript,所有的视图状态仍然在客户端和服务器之间来回发送,即使是微小的更新,整个页面也会在服务器端进行处理。

但是对于移动开发,您希望优化页面以实现更小的屏幕和更快的加载时间。通常,移动JavaScript框架负责维护客户端的状态,异步发送和接收消息以及通过JavaScript更新视图。这意味着ASP.NET Web Forms中用于维护回发状态(视图状态,页面生命周期)的所有基础结构通常都是无用的,有时甚至会适得其反。


我认为整体ASP.NET MVC更适合移动开发,也适用于jQuery Mobile。


如果必须使用ASP.NET Web窗体,则使用<asp:ListView>之类的控件来呈现您将用于jQuery Mobile UI列表元素的HTML。此控件使您可以很好地控制HTML。

尽量不要使用<asp:UpdatePanel>控件,因为那样你肯定会混淆隐喻。一般来说,不要过多依赖邮寄。

相反,您可以在页面上use web methods直接从JavaScript调用。具有[WebMethod]属性的静态页面方法将返回JSON格式的数据,这非常适合当今的大多数JavaScript框架。这些方法must be declared as static意味着它们不参与页面的生命周期。这也意味着它们具有更好的性能特征。

最后,即使您使用的是Web表单,也可以始终使用.ashx文件(基本IHttpHandler及其异步表兄,IHttpAsyncHandler)或具有ScriptService属性的Web服务。如果您决定将来使用ASP.NET MVC,这些选项也将很好地迁移。

答案 1 :(得分:1)

我希望这不会变成ASP.NET WebForms抨击派对。

答案是ASP.NET WebForms都很好,ASP.NET MVC也是如此。你今天用的是什么?你最舒服的是什么?你有多少时间?项目截止日期是什么时候?

是的,WebForm生成的控件ID有点烦人,但有一些解决方法。是的,尽量远离UpdatePanel,但没有什么可以阻止你同时使用jQuery。 UpdatePanel历来被滥用。期。它是一款ViewState hogger,不适合移动应用。

在一天结束时,WebForms将正常工作,具有页面生命周期,并且可以执行一些可靠的服务器端逻辑。在移动环境中,我倾向于远离任何runat=server控件,因为我想主要制作自己的Html并避免使用ViewState。此外,页面级别的静态[WebMethod, ScriptMethod]有助于整理代码。