论文部分内容阅读
摘要:本文分析了邮件管理系统的网络拓扑结构和邮件管理系统的功能组成结构,然后分析了系统除了需要完整的功能外,还需要高性能、高可靠的系统;最后提出采用Ajax技术从应用程序的优化设计方面来提高系统的性能。
关键词:邮件系统;性能;Ajax技术
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c
1 引言
随着互联网技术的不断发展,越来越多的事情都依赖于网络。现在如果一天没有了网络,好像就无法正常生活。而电子邮件系统正好是人们在网上交流的一个很好的工具,可以通过它来发送信件、发送贺卡等,所以现在使用电子邮件的客户是越来越多,基本上每一个人都有一个电子信箱。使用的人多了,必然要求电子邮件的性能要高,如果不能及时的完成客户的指令,会造成很多客户的流失。所以,为了满足客户的性能要求,我们必须对邮件系统的性能进行改进。
2、邮件系统网络拓扑结构
电子邮件系统主要由邮件服务器、网络传输设备、客户端PC机和认证服务器所构成。具体的网络拓扑结构图如图1所示。
图1邮件系统网络拓扑结构图
从邮件系统的网络拓扑结构图,我们可知邮件系统的通讯过程。首先用户登录邮件管理系统页面注册用户信息,也就是说,用户首先登陆了认证服务器,得到认证后才能发送邮件;然后用户的邮件需要通过防火墙,邮件管理系统再检测邮件是否是合法邮件;最后,用户请求成功,邮件系统接收邮件。
3 邮件系统功能设计
邮件管理系统功能主要由下几个部分组成。用户登录模块,该模块是指用户登录系统必须先注册用户信息,验证通过以后,认证服务器系统会返回用户的用户名和登录密码;增加邮件模块,该模块是指用户发送邮件,发送邮件时可以增加多个附件一起发送;修改邮件模块,该模块是指用户登录邮件系统后,编辑邮件,然后把邮件放入到草稿箱,需要发送邮件时,可以先从草稿箱中调出邮件进行修改,最后发送邮件;浏览邮件模块,该模块是指用户阅读邮件,阅读时可以下载附件信息;删除邮件模块,该模块是指用户可以把阅读完的邮件或者有些垃圾邮件删除。
4 邮件系统的性能设计
上面分析了邮件系统的网络拓扑结构和系统的功能设计方案,然而邮件系统中最为重要的是它的性能,没有高性能的系统是得不到用户的肯定的。在邮件系统的性能设计方面,我们采用了Ajax技术。
4.1 AJAX技术性能提高方案选择
在传统的邮件管理系统中,如果需要阅读邮件时,都需要整个页面的刷新,也就是说所有页面的数据都需要从服务器中重新读取一次,这样的交互方式将会产生大量的冗余数据,占用了大量的带宽,降低了浏览器响应速度。所以我们在思考怎么样能像桌面管理系统一样,减少中间的过程,提高页面的响应速度。经过多年的研究发现通过AJAX技术可以实现。
Ajax 由 HTML、JavaScript技术、DHTML 和文档对象模型(DOM)组成,HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段;JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信;DHTML 或 Dynamic HTML,用于动态更新表单; DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML。
4.2 AJAX技术的实现过程
在一般的 Web 应用程序中,用户填写表单字段并单击 Submit 按钮。然后整个表单发送到服务器,服务器将它转发给处理表单的脚本(通常是 PHP 或 Java,也可能是 CGI 进程),脚本执行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的 HTML,也可能是确认页面,或者是具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。
然而采用Ajax技术可以避免了这个交互的过程。Ajax 基本上就是把 JavaScript 技术和 XMLHttpRequest 对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是直接发送给服务器。相反,JavaScript 代码捕获表单的数据并向服务器发送请求,因为请求是异步发送的,所以JavaScript 代码是不用等待服务器的响应。实现过程中的部分代码如下所示:
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if (!xmlHttp
关键词:邮件系统;性能;Ajax技术
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c
1 引言
随着互联网技术的不断发展,越来越多的事情都依赖于网络。现在如果一天没有了网络,好像就无法正常生活。而电子邮件系统正好是人们在网上交流的一个很好的工具,可以通过它来发送信件、发送贺卡等,所以现在使用电子邮件的客户是越来越多,基本上每一个人都有一个电子信箱。使用的人多了,必然要求电子邮件的性能要高,如果不能及时的完成客户的指令,会造成很多客户的流失。所以,为了满足客户的性能要求,我们必须对邮件系统的性能进行改进。
2、邮件系统网络拓扑结构
电子邮件系统主要由邮件服务器、网络传输设备、客户端PC机和认证服务器所构成。具体的网络拓扑结构图如图1所示。

图1邮件系统网络拓扑结构图
从邮件系统的网络拓扑结构图,我们可知邮件系统的通讯过程。首先用户登录邮件管理系统页面注册用户信息,也就是说,用户首先登陆了认证服务器,得到认证后才能发送邮件;然后用户的邮件需要通过防火墙,邮件管理系统再检测邮件是否是合法邮件;最后,用户请求成功,邮件系统接收邮件。
3 邮件系统功能设计
邮件管理系统功能主要由下几个部分组成。用户登录模块,该模块是指用户登录系统必须先注册用户信息,验证通过以后,认证服务器系统会返回用户的用户名和登录密码;增加邮件模块,该模块是指用户发送邮件,发送邮件时可以增加多个附件一起发送;修改邮件模块,该模块是指用户登录邮件系统后,编辑邮件,然后把邮件放入到草稿箱,需要发送邮件时,可以先从草稿箱中调出邮件进行修改,最后发送邮件;浏览邮件模块,该模块是指用户阅读邮件,阅读时可以下载附件信息;删除邮件模块,该模块是指用户可以把阅读完的邮件或者有些垃圾邮件删除。
4 邮件系统的性能设计
上面分析了邮件系统的网络拓扑结构和系统的功能设计方案,然而邮件系统中最为重要的是它的性能,没有高性能的系统是得不到用户的肯定的。在邮件系统的性能设计方面,我们采用了Ajax技术。
4.1 AJAX技术性能提高方案选择
在传统的邮件管理系统中,如果需要阅读邮件时,都需要整个页面的刷新,也就是说所有页面的数据都需要从服务器中重新读取一次,这样的交互方式将会产生大量的冗余数据,占用了大量的带宽,降低了浏览器响应速度。所以我们在思考怎么样能像桌面管理系统一样,减少中间的过程,提高页面的响应速度。经过多年的研究发现通过AJAX技术可以实现。
Ajax 由 HTML、JavaScript技术、DHTML 和文档对象模型(DOM)组成,HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段;JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信;DHTML 或 Dynamic HTML,用于动态更新表单; DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML。
4.2 AJAX技术的实现过程
在一般的 Web 应用程序中,用户填写表单字段并单击 Submit 按钮。然后整个表单发送到服务器,服务器将它转发给处理表单的脚本(通常是 PHP 或 Java,也可能是 CGI 进程),脚本执行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的 HTML,也可能是确认页面,或者是具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或程序处理和返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。
然而采用Ajax技术可以避免了这个交互的过程。Ajax 基本上就是把 JavaScript 技术和 XMLHttpRequest 对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是直接发送给服务器。相反,JavaScript 代码捕获表单的数据并向服务器发送请求,因为请求是异步发送的,所以JavaScript 代码是不用等待服务器的响应。实现过程中的部分代码如下所示:
/* Create a new XMLHttpRequest object to talk to the Web server */
var xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if (!xmlHttp