问题:当一个正在执行中的ASPX页面执行到一半的时候,浏览器中你关闭了这个页面,服务器端对应的这个页面的代码仍然在执行么?
答案:除非你代码里面做了特殊判断,否则仍然正在执行。
注意点:
1、客户端显示页面的时候,后台已经执行完了的页面对象早已经不存在了。当然这时候谈不上服务器段执行不执行的问题了。
2、页面还没有返回,处于等待状态的时候。关闭ASPX页面,才会涉及到上面提到的服务器端仍然在执行的情况。
3、客户端关闭的时候根本不向服务器发送指令。
4、除非你代码里面做了特殊判断,这里的特殊判断指用 if(!Response.IsClientConnected) 来检测状态而用代码终止运行。
下面的简单代码就是演示关闭页面后,看是否仍然在执行?
你可以在这个页面打开后, 还没有返回任何信息的时候把这个页面关闭,然后看指定目录下是否有对应文件被创建并填写内容。
protected void Page_Load(object sender, EventArgs e)
{
阅读全文>
发表于 @ 2008年07月24日 23:01:00|评论(loading...)|编辑|收藏
前几天CSDN中的一个朋友询问在DLL中访问窗体中的组件的问题,偶对DLL也不熟,也没有搞懂,昨天他对我说问题解决了,我借其小结一下,让自己印像深刻:
在DLL中访问组件时要类似这样进行判断:
if panl.Controls[i].ClassNameIS('TEDIT') then
TEdit(panl.Controls[i]).Clear;
而不能用这样进行判断:
if panl.Controls[i] is TEDIT then
TEdit(panl.Controls[i]).Clear;
对于DLL的知识回顾如下:
DLL 在win16与win32中有很大区别,在win16中DLL中是一个全局即只他配一次地址当两个DLL访问同一个变量会有冲突,而在win32中则对于每个实例分配一个独立的地址空间,这类似于COM了,呵,待我回家看看书再好好组织一下语言,现在把DLL创建的过程写一下:
主框架:
library DLL名称;
uses 相关的单元
library Project1;
定义过程阅读全文>
发表于 @ 2008年07月23日 23:12:00|评论(loading...)|编辑|收藏
原作出处:http://www.codeproject.com/useritems/tips.asp?df=100
一..Net Framework
1. 如何获得系统文件夹
使用System.Envioment类的GetFolderPath方法;例如:
Environment.GetFolderPath( Environment.SpecialFolder.Personal )
2. 如何获得正在执行的exe文件的路径
1) 使用Application类的ExecutablePath属性
2) System.Reflection.Assembly.GetExecutingAssembly().Location
3. 如何检测操作系统的版本
使用Envioment的OSVersion属性,例如:
OperatingSystem os = Environment.OSVersion;
MessageBox.Show(os.Version.ToString());
MessageBox.Show(os.Pla阅读全文>
发表于 @ 2008年07月23日 22:59:00|评论(loading...)|编辑|收藏
1. 数据库访问性能优化
数据库的连接和关闭
访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能。因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完毕后马上关闭,从而尽量减少数据库连接打开的时间,避免出现超出连接限制的情况。
使用存储过程
存储过程是存储在服务器上的一组预编译的SQL语句,类似于DOS系统中的批处理文件。存储过程具有对数据库立即访问的功能,信息处理极为迅速。使用存储过程可以避免对命令的多次编译,在执行一次后其执行规划就驻留在高速缓存中,以后需要时只需直接调用缓存中的二进制代码即可。另外,存储过程在服务器端运行,独立于ASP.NET程序,便于修改,最重要的是它可以减少数据库操作语句在网络中的阅读全文>
发表于 @ 2008年07月21日 22:15:00|评论(loading...)|编辑|收藏
Live Mesh是微软进入发展迅猛的云计算市场的最新举措。所谓“云计算”是指通过网上的中央数据中心,实现PC上的各种应用与服务。目前,亚马逊、谷歌、 Salesforce等数十家公司已经建立了计算中心,可以高效处理数据外包业务,并使之成为象电一样,企业可以轻松购买的商品。
北京时间2008年7月18日,微软"云计算"产品 Live Mesh 英文帐户已开放使用,注册地为英文的msn.com和live.com等用户已可以登录mesh。
访问:Mesh阅读全文>
发表于 @ 2008年07月21日 22:13:00|评论(loading...)|编辑|收藏
年初和某家IT雜誌社編輯一同參加一場某軟體廠商辦的會議。主講人在台上展示使用他們技術開發出來的漂亮介面,相當吸引人。編輯看了之後,頗為讚許,轉身對我說:這東西很棒吧!我澆了她一盆冷水:要做到這樣的GUI(Graphical User Interface)效果,複雜度相當高,背後投入的資源相當多,可不是一般小公司做得出來的。對於GUI程式設計,我的考量點一直都不是「能不能做得到」,而是「容易做得到嗎」。阅读全文>
发表于 @ 2008年06月28日 00:25:00|评论(loading...)|编辑|收藏
当然我并不想把.NET软件开发概括为一些简单的小问题,我只是想让大家多思考。我相信一个真正优秀的ASP.NET(及WinForm)开发人员应该不仅仅会拖放控件到设计器中,也应该掌握更多的东西。一个优秀的赛车比赛选手很了解他自己的坐驾,他知道哪些可以做?哪些不能做?阅读全文>
发表于 @ 2008年06月26日 20:18:00|评论(loading...)|编辑|收藏
Internet 的应用正在不断地扩大,但我们的 Internet 编程方式还处于石器时代。
Internet 用户就像老式主机的分时终端上的用户一样,他们从一个受保护的资源请求信息,然后等待回应。你从正在浏览的 Internet 站点上接收的信息由它希望提供给你的、基于 HTML 的信息组成的。
阅读全文>
发表于 @ 2008年06月24日 20:07:00|评论(loading...)|编辑|收藏
什么是底层技术?
兄弟们,我知道现在很多程序员都是搞Web的,但是这东西现在开始供大于求,况且有迅猛的培训,使得大批的人涌入。因此俺想学点底层的东西,以便有条后路。听说这些东西学着也难一点,也比较适合我们基础好一些的,至少我们是大学生嘛:)
阅读全文>
发表于 @ 2008年06月19日 23:29:00|评论(loading...)|编辑|收藏
这两天对java的动态代理感兴趣,自己写了个最简单的代码,认识一下动态代理!
例子:
类列表:
MyObjec是执行类。
MyProxy 是我自己实现的动态代理类,这个类实现了InvocationHandler接口,关于这个借口的描述就不多说了,可以参照api文档!好像动态代理类都实现这个接口,我是这么理解的,呵呵!
Test 类是我的业务类
ITest 是我业务类的接口!
阅读全文>
发表于 @ 2008年06月07日 08:52:00|评论(loading...)|编辑|收藏
Eclipse 可以轻松地支持 Java™ 和其他编程语言。但是直到最近,仍然很难使用 Eclipse 构建、运行和调试 C# 项目。本文将介绍如何使用 Eclipse Mono Integration (Emonic) 和 NAnt,这些都是可用于 Eclipse 的最活跃的 C# 和 .NET 工具包。本文的目标读者是拥有 .NET 背景知识、熟悉 Eclipse 并且需要使用一种有效方法在 Eclipse 中处理 C# 和 .NET 的开发人员。阅读全文>
发表于 @ 2008年06月06日 22:55:00|评论(loading...)|编辑|收藏
1、WCF (Windows Communication Foundation):虽然WCF显然没有WPF或SilverLight那么吸引人,但是它却是在.NET框架下解决业务问题的基础。所以你今年至少要学习一门.NET的新技术,那你就选择WCF吧。
2、ADO.NET (and LINQ):这是让你与数据层打交道的技术。并且LINQ提供了将各种数据组合起来的方法。如果以上两个技术你都不熟悉的话,那就等着被人来抢你饭碗吧。
3、WPF (Windows Presentation Foundation):学习WPF的重要性简直不言而喻。你在程序中所需要的窗体、交互界面、页面都是架构在WPF上的。并且在Vista中已经集成了WPF。
4、SQL Server 2005:我明白这其实并不是.NET的内容,但它又确实是.NET的内容。SQL Server 2005为开发者提供了一种在其他平台无法得到的强大力量。你得仔细挖掘这个版本所带来的创新技术,这将帮助你成为一个更好的开发者和问题解决者。
5、ASP.NET 2.0:即使是非在线程序开发者也应该了解一阅读全文>
发表于 @ 2008年05月29日 14:04:00|评论(loading...)|编辑|收藏
VMware在安装的时候默认会在VS中装插件,VS启动时会去加载这些插件。
VMware一共有四个服务,我们为了启动速度快一点,经常会停掉这些服务。而VS启动加载插件时如果这些服务是停止的,那么加载过程就会停在那里,就像我们看到的一直停留在启动画面的情况。阅读全文>
发表于 @ 2008年05月29日 13:23:00|评论(loading...)|编辑|收藏
除非另外指定,否则,.NET将试图把Web服务绑定到三种协议:HTTP/POST、HTTP/GET和SOAP。之所以说“试图”,是因为依赖于服务的参数和返回类型,HTTP/GET协议可能不可用。.NET生成的WSDL文件将自动包含绑定这三种协议的指令,客户程序可以自由选择使用哪种协议与服务通信。阅读全文>
发表于 @ 2008年05月26日 19:28:00|评论(loading...)|编辑|收藏
先转换成streamreader类的对象,去掉回车符,再转换回来
StreamReader sr = new StreamReader(this.textBox1.Text,System.Text.Encoding.Default);
this.textBox2.Text = sr.ReadToEnd().Replace((char)10, ' ').Replace((char)13, ' ');
this.textBox2.SelectAll();
sr.Close(); 阅读全文>
发表于 @ 2008年05月25日 14:25:00|评论(loading...)|编辑|收藏