本文链接:https://bbs.csdn.net/topics/392077893

因为webform确实,企图通过在html标签中的runat="server",在iis接受请求后,通过aspx页面引擎解析,想在服务器端,将所有标签构建成对象,各种Label对象,Button对象,然后还有一大堆属性Css,Style等等,包含一大堆本该服务器不应该关心的东西。
我认为只有对html页面进行数据填充的地方,才需要服务器端关心,其他地方都不是服务器端的责任,软件开发时,页面表现,前端工程师都写好了,不该是服务器关心的。

然后Webform为了干预这引擎生成的对象,以及深入的说干预最后生成的html页面(字符串)加了很多事件!这个就是页面生命周期,这个本来没什么问题。但是每次事件回传都要把这些事件执行一遍就有点问题了。

每次事件回传,都对页面重新生成,将客户端提交的form表单元素解析,然后还原html字符串中各个地方的值,这是是楼主说的框架设计的问题吧!
服务器控件的存在,页面生命周期的过长,这些与ajax确实是冲突的,如ViewState的完整性验证,不允许客户端修改服务器控件生成的内容,这个只能在服务器端对内容进行更改,这样就可ajax冲突了。比如:
刚开始用服务器控件做了个多级联动,然后如果在前端用ajax修改了控件生成的内容,再次提交到后台就会验证出错,不得不关闭安全验证。

ajax请求也不得不再写一个ashx页面,不能请求自身这个文件,不然的话,又一次生命周期,又一次状态还原。整个框架给人的感觉是想要精细控制的话,自己又必须写很多代码,或者以前的框架做了过多的事情,不够清爽!

asp.net的webform是试图把客户端和服务器端的编程混在一起的.让你感觉不到客户端的存在,但实际上web编程程序的偏重点就在客户端,特别是SEO需要高质量的HTML,也就需要精确控制页面的元素,但webform束手缚脚.

Asp.net的WebForm的落后技术的更多相关文章

  1. ASP.NET中 WebForm 窗体控件使用及总结【转】

    原文链接:http://www.cnblogs.com/ylbtech/archive/2013/03/06/2944675.html ASP.NET中 WebForm 窗体控件使用及总结. 1.A, ...

  2. 转:基于ASP.NET的Comet长连接技术解析

    原文来自于: Comet技术原理 来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流. 简单的 ...

  3. asp.net mvc webform和razor的page基类区别

    接触过asp.net mvc的都知道,在传统的webform的模式下,page页面的基类是这样声明的: <%@ Page Language="C#" MasterPageFi ...

  4. ASP.NET Core Windows服务开发技术实战演练

    一.课程介绍 人生苦短,我用.NET Core!大家都知道如果想要程序一直运行在Windows服务器上,最好是把程序写成Windows服务程序:这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需 ...

  5. Asp.NetCore Web开发之会话技术

    这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程. 由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我 ...

  6. Asp.net中WebForm 与 MVC的架构区别

    ASP.NET Webform 后台代码(behind code) 这种behind code 模式有5个问题,我们用MVC的设计思想来分别解决这些问题 1.基于视图的方案来解决基于行为的需求 从上图 ...

  7. 在ASP.NET Core下使用SignalR技术

    一.前言 上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 .这次的主角是SignalR它为我们提 ...

  8. Asp.NetMVC和WebForm的请求生命周期

    1.MVC的执行过程 用户  ---->控制器--->ViewData进行传值--->视图(进行显示) 2.Controller中的Action 主要进行的作用: 1.处理用户的请求 ...

  9. C# 获取客户端信息 /asp.net/WebService/WebForm

    Request.Browser.MajorVersion.ToString();//获取客户端浏览器的(主)版本号Request.Browser.Version.ToString();   //获取客 ...

随机推荐

  1. Java虚拟内存(栈、堆)

    一.java虚拟的内存可以分为几种 1. 第一种 栈(stack) 栈的特点 1.1 栈描述的是方法执行的内存模型,每个方法都被调用都会创建一个栈(存储局部变量.操作数. 方法出口等) 1.2 JVM ...

  2. C#加密与解密(DES\RSA)学习笔记

    本笔记摘抄自:https://www.cnblogs.com/skylaugh/archive/2011/07/12/2103572.html,记录一下学习过程以备后续查用. 数据加密技术是网络中最基 ...

  3. Html5学习系列

    Html5学习系列 HTML5 规定了一种通过 video 元素来包含视频的标准方法 Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 MPEG4 = 带有 H.26 ...

  4. sublime text3 控制台 Package Control 的安装与使用方法

    下载安装 sublime text3 直接网上搜sublime text3 下载即可,安装很简单 下一步就行,这里主要说明sublime text3 控制台 Package Control 的安装与使 ...

  5. Spark学习之路 (五)Spark伪分布式安装[转]

    JDK的安装 JDK使用root用户安装 上传安装包并解压 [root@hadoop1 soft]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local ...

  6. pandas学习笔记之删除指定列

    删除指定 def df["列名"] del df4["韩国地震影响"] 直接删除,df4中不在含有"韩国地震影响"这一列了 drop 不改变 ...

  7. gulp常用插件之http-proxy-middleware使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 http-proxy-middleware这是一个用于后台将请求转发给其它服务器.其实这并不是转给gulp使用的,在其它构建工具也可以用. 更多使 ...

  8. 0013 基于DRF框架开发(01 基类视图 APIView)

    之前学习了模型序列化和普通序列化,我们用最简单的视图和url实现了对序列化的操作. 而实际上,象之前那种由DRF自动生成所有的视图和url的情况,在应用是使用很少.而需要用户根据实际业务需求,自定义视 ...

  9. asp.net core 配置文件动态更新

    IOptions<T> //站点启动后,获取到的值永远不变 IOptionsSnapshot<T> //站点启动后,每次获取到的值都是配置文件里的最新值 (reloadOnCh ...

  10. jQuery---prop方法和表格全选案例

    prop方法和表格全选案例 对于布尔类型的属性,不用attr方法,应该用prop方法 prop用法跟attr方法一样 <input type="button" value=& ...