打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)
前文描述:
随着.net 推出 MVC框架以来,webform 与 mvc 的争论一直没有停止过,一直以来 mvc 的 拥护者远远高于 webform,但是webfrom的有些优势又是mvc而无法替代的。下面我们来看一下webform相比与MVC的劣势在什么地方,而我们要做的是如何解决这些劣势,同时在性能上要超过MVC。
1.大量的服务器控件,大量的垃圾代码,导致页面加载速度慢。
2.每次点击按钮或者一些操作 界面都会刷新,又不想写 ajax 。
3.每次调用后台前想先执行前台很难写, 前台 传参数到后台很困难
4.webfrom 自定义控件 效果很不好,也很难写
5.前台页面与后台代码紧密相连,无法分离,需要写很多重复的页面
6.没有像MVC那样的视图 引擎机制
7.没有mvc 那样的路由机制
. *****
当然 webform 的坏处还远不止这些,而作为一个开发人员这些问题我们都是知道的,但是我们依然在使用webform开发大型网站,下面来看下我们公司是如何避免这些问题的?在了解框架之前,我们得必须知道我们公司的框架的思想!!!!
什么样的前端架构才是最好的?
其实作为一个开发人员,除了关心性能之外,你最关心的是扩展性以及代码的可维护性,还有代码的简单易懂。而作为前端开发,你需要能控制到 每行代码都能自己去控制,下面是我的个人观点!
我认为 最接近原生 的 html 的代码 是最好的 前端,比如大家所谓的 easyui,bootstrap 等框架,虽然能减少你的开发周期,减少控件开发,但是问题也很多,如果需要扩展功能很难,整个页面的加载速度很慢,而且很难去控制,因为很多js代码不是你写的,里面一旦出现BUG很难去纠正,如果有条件 可以去自己开发控件,我推荐使用 jquery控件(jquery能很好的兼容各种浏览器)和 C#控件(这里指的是纯cs 输出 html代码的控件)。
问题一: .大量的服务器控件,大量的垃圾代码,导致页面加载速度慢。 如何解决?
我们要打招高性能的 webform,我们要明确一个思想,我们要抛弃一切服务器控件,界面布局全部使用 最原生的html,这样的好处很多,能很好的与美工 做出来的效果保证一致,但是我们依然要使用的 runat="server" ,还要写上id ,这样我们才能在后台获取到值。
有人会问,那分页控件怎么办(我推荐使用 c# 输出html 控件),很多特殊的控件怎么办?比如日历控件(我推荐使用js 日历控件),
我们常用repeater 控件怎么办?(我推荐 后台写写一个全局变量,前台 使用<% %> 的方式来进行 前台页面输出),例如:
<table>
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<%
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
%>
<tr>
<td>
<%=dt.Rows[i]["name"].ToString() %></td>
<td>
<%=dt.Rows[i]["age"].ToString() %></td>
</tr>
<%
}
}
%>
</table>
同样我们可以用 <% %> 的方式代替 razor 的视图引擎。
好了这样 ,这样的页面是否会觉得跟html 的原生页面很相似呢?这样你的页面 还会加载速度很慢吗?除非数据量很大,后期我们会讨论大数据的分页!!!
这样还会引来一个问题,我们如何与后台打交道啊,我可不想写 什么 ajax 和一般处理程序啊!!!!怎么办??
这个问题我们会在下期界面中去讲如何实现 js 直接与后台打交道!!!!
打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)的更多相关文章
- 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台的封装(第三天)
如果你没有看我第二天写的内容的,我想你是看不懂的!!!! 好了,废话不多说,怎么才能让我们的代码变得牛逼起来呢?怎么封装我们的代码呢?我们不可能 每个页面都需要那样写吧,那我们来一步一步来封装 我们的 ...
- 打造颠覆你想象中的高性能,轻量级的webform框架---无刷新提交后台并返回参数(第五天)
问题5: 使用aspx 页面执行后台方法,总是要刷新整个页面?我想提交后台不刷新页面,同时返回参数 执行前台的js 脚本,就是说类似于像 ajax 的效果一样,那我们该怎么做呢? 大家是否已经看了前 ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件
Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...
- XAF 框架中,自定义参数动作(Action),输入参数的控件可定义,用于选择组织及项目
XAF 框架中,如何生成一个自定义参数动作(Action),输入参数的控件可定义? 参考文档:https://documentation.devexpress.com/eXpressAppFramew ...
- QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)
QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...
- PyQt学习随笔:Qt中tem Views(Model-Based)和Item Widgets(Item-Based)控件的用途和关系
在界面程序开发中,数据的展示主要包括表格.简单列表.树状列表以及纯文本等多种方式,在Qt中将界面表格.简单列表.树状列表称为"表项视图类(item view class)",并提供 ...
- .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...
- 将展示内容(div、iframe)放在Expand控件中
Expand是ArcGIS JavaScript API 4.3推出的一个widget(控件),用于承载一个HTML DOM元素,可以把一个自己编写的div或者是一个其他的Esri widget控件放 ...
随机推荐
- ASP.NET MVC中的 _ViewStart.cshtml文件的作用【摘抄】
ViewStart 在前面的例子中,每一个视图都是使用Layout 属性来指定它的布局.如果多个视图使用同一个布局,就会产生冗余,并且很难维护. _ViewStart.cshtml 页面可用来消除这种 ...
- HDP3.1 中配置 YARN 的 timeline server 使用外部的 HBase
HDP3.1 中的 YARN 的 timeline server 默认使用内置的 HBase,不知道为什么,总是过几天就挂掉,暂时还没找到原因.后来想着让它使用外部的 HBase 看看会不会还有此问题 ...
- 【原创】智能合约安全事故回顾分析(1):The Dao事件
首先需要说明的一点是,这个世界上没有绝对安全的技术.在区块链发展的十年里,各种基于区块链的数字货币引发的安全事故层出不穷,这些安全威胁主要来源有三个方面: 自身安全机制的问题,类似智能合约. 生态安全 ...
- jdk的卸载
问题描述: win10环境安装了jdk1.7&jdk1.8&jdk1.9 jdk1.9安装后,设置jdk1.9安装目录为JAVA_HOME.后来JAVA_HOME切换jdk1.8环境变 ...
- d190305面试题01总结
题目一: 题目二: 题目三: 类中的某个成员变量可以被他和他的子类访问,应该用protected 知识点: 1.类中public修饰的属性,方法可以被该类,子孙类和外部类访问. 2.类中protect ...
- require、require_once、include、include_once
在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容. include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码. include 和 requ ...
- [题解](线段树最大连续子段和)POJ_3667_Hotel
题意:1.求一个最靠左的长x的区间全部为0,并修改为1,输出这个区间的左端点 2.修改一个区间为0 实际上是维护最大连续子段和,原来也写过 大概需要维护一个左/右最大子段和,当前这段最大子段长,再维护 ...
- 不要忽视Web编程中的小细节
概述:长时间以来,我们创造了某些在构造和范围内用以提升网站易用性的约定和实践.然后在我们进行web编程的时候总有一些疏忽和纰漏.这里总结了一些web编程时容易出现的小错误,并给出了相应的补救方法,希望 ...
- Codeforces Round #565 (Div. 3) B. Merge it!
链接: https://codeforces.com/contest/1176/problem/B 题意: You are given an array a consisting of n integ ...
- maven参数
mvn clean package -DskipTests mvn -T 2 clean install/mvn -T 2C clean install: maven支持并行构建,-T 2表示使用2个 ...