1.<%@Page%>中的Codebehind、A2utoEventWireup、Inherits有何作用?
AutoEventWireup --- 指示是否自动启用页事件。 Codebehind --- 指示后台代码文件。 Inherits ---
继承类。
AutoEventWireup:指示该页的事件是否为自动连网的。如果启用事件自动连网,则为 true;否则,为 false。
Inherits:定义供页继承的代码隐藏类。可以是从 Page 类派生的任何类。 Codebehind:代码绑定文件的名称。
Codebehind="PreDeliver.aspx.cs" 表示该页的后置代码在当前目录下的PreDeliver.aspx.cs文件中;
AutoEventWireup="false"
表示是否自动地将页面的事件和相应的方法绑定到一起,一般这个什要设为false,因为若设为true有可能两次调用相同的事件代码。
Inherits="Issue.Pre"表示页面中的控件是在哪个类中定义的。
基础知识:AutoEventWireup属性
AutoEventWireup属性决定事件句柄怎样连接到控件事件中。当AutoEventWireup设置为true时,ASP.NET决定调用类中的哪一种方法来响应那些在用户与网页的交互中产生的事件。ASP.NET将不必用代理就可以为一个Web控件调用合适的事件句柄,对程序员而言,这样可以无需为事件句柄添加代理。在程序员不是使用Visual
Studio因而必须自己添加代码的情况下,这是非常方便的。 当Visual Studio生成一个ASPX文件时,因为Visual
Studio为我们生成必要的时间代理,所以将AutoEventWireup设为false。 如果在Visual
Studio中将AutoEventWireup设为true,那么一个事件句柄将会被调用两次,一次通过代理,一次是AutoEventWireup的结果。
runat属性,设置为“Server”,说明由服务器来处理表单并生成发送给客户的HTML代码。
同一类型的Web控件可以映射到不同的HTML元素,这取决于客户端的浏览器和Web空间的参数设置。
Page类定义了所请求的网页,位于System.Web.UI名字空间,它包含了为创建基于Web的应用和控件所需的类。
类Page也提供了创建基于Web的应用所需的事件句柄和必要对象。
除了Page类,System.Web.UI还包括Control类。这是一个为所有的Web控件提供一般功能的基类。
ASPX文件和代码后置文件是怎样被用于创建那些发送给客户的网页的呢?首先,类WebTimeTest继承了定义了网页一般功能的Page类。除了继承这些功能以外,WebTimeTest还定义了一些自己特有的功能。
代码后置文件就是定义了这一功能的文件,而ASPX文件定义了GUI。当客户请求一个ASPX文件时,在包含网页的可视化部分(在ASPX文件中定义)和包含网页的逻辑部分(在代码后置文件中定义)的现场后面创建一个类。新类继承自Page。
当网页首次被请求时,这个类被编译并且创建一个实例。这个实例表示网页,它创建了被传送给客户的HTML。由编译过的类创建的组件被放置在项目的Bin目录中。
一旦一个网页实例已经创建,多个用户就可以使用这一实例来访问这个网页——不再需要重新编译。项目仅仅在程序员修改应用程序后才需要重新编译,这些变化由运行时间环境检测,并且项目将被重新编译来反应变化的内。
2. 缓存的几种不同的实现方法?
1以编程方式操作 HttpCachePolicy 类。 HttpCachePolicy.SetExpires
HttpCachePolicy.SetCacheability |NoCache|Private|Public|Server|ServerAndNoCache
|ServerAndPrivate 2<%@ OutputCache Duration="60" VaryByParam="None"
%>Duration 和 VaryByParam 属性是必需的。 2)缓存 ASP.NET 页的某些部分 不变的部分缓存起来,不必总是请求服务器
控件头部,则该控件的一个版本将在输出缓存中存储 120 秒。 <%@ OutputCache Duration="120"
VaryByParam="None" %> 或使用代码隐藏开发方法开发用户控件,则将以下属性包含在类声明的元数据中时,控件版本将在输出缓存中存储 120
秒。 [C#][PartialCaching(120)] 以上两法将仅缓存用户控件。 也可嵌套使用,在已缓存的页面或控件中缓存控件。 !!可能的错误:
如果编写代码来操作一个包含 @ OutputCache 指令的用户控件,则将出现错误。 另外,如果页输出缓存设置为 100 秒,而用户控件输出缓存设置为 50
秒,则整个页将在输出缓存中存储 100 秒,而与用户控件较短的时间设置无关。
不过,如果页输出缓存存储持续时间比用户控件存储持续时间短,则将一直使用缓存用户输出控件,直到其存储时间到期为止,即使该页的其余部分已为某个请求重新生成。例如,如果页输出缓存设置为
50 秒,而用户控件输出缓存设置为 100 秒,则页的其余部分每到期两次,用户控件就到期一次。 3)缓存应用程序数据
允许您将需要大量的服务器资源来创建的对象存储在内存中。它是由 Cache
类实现的,实例是每个应用程序专用的,其生存期依赖于该应用程序的生存期。重新启动应用程序后,将重新创建 Cache 对象。
3.怎样计算页面执行的时间?
有时见到别人的页面下方显示出页面的执行时间,很多新手都会想知道是怎么实现的吧?其实这个在PHP手册上就有,请看例子
<?php |
4. 什么是AJAX
Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验。在Ajax之前,Web站点强制用户进入提交/等待/重新显示,用户的动作总是与服务器的“处理时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮时,使用JavaScript和DHTML立即更新显示,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新显示,而不用刷新整个页面。最重要的是,用户甚至不知道浏览器正在与服务器通信:Web站点看起来是即时响应的。
虽然Ajax所需的基础架构已经出现了一段时间,但直到最近异步请求的真正威力才得到利用。能够拥有一个响应极其灵敏的Web站点确实激动人心,因为它最终允许开发人员和设计人员使用标准的HTML/CSS/JavaScript堆栈创建“桌面风格的(desktop-like)”可用性。
5. 用自己的语言描述一下程序连接数据库的过程。
我需要用c写一个连接mysql的cgi程序,cgi程序放在“/var/www/cgi/”目录,mysql客户机库放在“/usr/local/lib/mysql”下,如果我的cgi程序编译的时候不连接客户机库,就可以正常执行,当编译的时候加
“-L/usr/local/lib/mysql/ -lmysqlclient -lz -lm”的时候就出错,错误如下:
- Internal Server Error The server encountered an internal error or
misconfiguration and was unable to complete your request. - Please contact the server administrator,[email protected] and
inform them of the time the error occurred, and anything you might have done
that may have caused the error. - More information about this error may be available in the server error
log.
复制代码