仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 490|回复: 8
打印 上一主题 下一主题

[学习教程] NET网页编程之怎样将ViewState耐久化

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:25:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
捆绑编译器。用户不需要受制于厂家,自己就能将程序在新平台上编译运行。除了牛B轰轰的linux,估计也没有系统捆绑c/c++的编译器,而且许多新平台都无法支持复杂的c/c++编译器在上面直接运行。<p>假如你有一个十分酷的页面,页面上良多器材主动地呼应用户操纵而展示丰厚的变更,你的ViewState是很有大概到达200K的。
这里是我将ViewState耐久化坚持在服务器真个代码,如许ViewState不占用收集带宽,因而其存取只是服务器的磁盘读取工夫。而且它很小,能够说是磁盘任意转一圈就可以同时读取很多多少ViewState,因而能够说“不占工夫”。为了再“不占磁盘工夫”,我还利用了缓存。
一下这段代码能够放在页面中,大概页面的父类中:
ViewState耐久化C#code
<OLclass=dp-c>protectedoverrideobjectLoadPageStateFromPersistenceMedium(){varviewStateID=(string)((Pair)base.LoadPageStateFromPersistenceMedium()).Second;varstateStr=(string)Cache[viewStateID];if(stateStr==null){varfn=Path.Combine(this.Request.PhysicalApplicationPath,@"App_Data/ViewState/"+viewStateID);stateStr=File.ReadAllText(fn);}returnnewObjectStateFormatter().Deserialize(stateStr);}protectedoverridevoidSavePageStateToPersistenceMedium(objectstate){varvalue=newObjectStateFormatter().Serialize(state);varviewStateID=(DateTime.Now.Ticks+(long)this.GetHashCode()).ToString();//发生团圆的id号码varfn=Path.Combine(this.Request.PhysicalApplicationPath,@"App_Data/ViewState/"+viewStateID);ThreadPool.QueueUserWorkItem(obj=>File.WriteAllText(fn,value));Cache.Insert(viewStateID,value);base.SavePageStateToPersistenceMedium(viewStateID);}
不利用Session,由于它会“丧失”。ViewState保留在磁盘上,即便服务重视新启动,也不会丧失页面形态。
上面这段能够放在Global.asax中,也能够基本不论:
ViewState耐久化C#code
<OLclass=dp-c>protectedvoidApplication_Start(objectsender,EventArgse){vardir=newDirectoryInfo(this.Server.MapPath("~/App_Data/ViewState/"));if(!dir.Exists)dir.Create();else{varnt=DateTime.Now.AddHours(-1);dir.GetFiles().ForEach(f=>{if(f.CreationTime<nt)f.Delete();});}}
这能够确保相对不乱牢靠地事情。今后请宁神利用ViewState,把交互式页面进步程度才是最主要的,不要胶葛在“ViewState太年夜”上。实践上,因为页面计划不敷酷,交互变更看上往不敷丰厚,ViewState其实是太小太小了。
假如你利用了它无效进步了庞大交互页面的效力,能够说一下进步了几?!假如你以为没用,也能够说一下在甚么情形下没用。
<p>我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。
灵魂腐蚀 该用户已被删除
沙发
 楼主| 发表于 2015-1-18 14:25:09 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
海妖 该用户已被删除
板凳
发表于 2015-1-26 19:56:13 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-4 21:07:13 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
小女巫 该用户已被删除
5#
发表于 2015-2-10 11:11:51 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
山那边是海 该用户已被删除
6#
发表于 2015-3-1 13:01:40 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
变相怪杰 该用户已被删除
7#
发表于 2015-3-10 17:33:35 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
活着的死人 该用户已被删除
8#
发表于 2015-3-17 09:12:25 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
再现理想 该用户已被删除
9#
发表于 2015-3-24 06:01:16 | 只看该作者
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-27 04:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表