关于JavaScript脚本中的alert思考

简介:

对于JavaScript脚本中的alert的作用只是单纯的在网页表单上弹出一个模态的警告对话框。在大部分的时候被用作对表单提交时作校验客户端输入合法性,如果用户所输入的信息不符合条件,则以alert加提示信息的方式来提醒用户。
    对于alert的使用在正常境况下不存在有争议,可以说alert还是有一定的帮助。但是存在争议的时使用alert会不会给服务器端造成压力。不会?或许大部分看到这里后第一个反应就是这样。
    说不会的人也有其相应的理由:客户端脚本,在客户端执行。怎么会给服务器端造成压力呢?这个解释没有任何问题。但是由于alert是以模态的形式弹出,所以我就提出了这个疑问,希望大家来讨论一下。
   如果在这种情况下:在服务器端往客户端回传数据的时候,其中包含有alert。也就是一下模式:

< html >
   < body  MS_POSITIONING ="GridLayout" >
A
< SCRIPT  > alert("ee"); </ SCRIPT >
B    
   </ body >
</ html >

在这种情况下用户可以看到网页在显示A之后就弹出alert警告框,之后用户如果不关闭alert对话框,则网页也就不会继续显示B。

问题也就处在这里:如果在Web开发中,alert以这种方式出现(有时候开发人员会以这种方式来提示用户信息保存正确或失败)。会不会给服务器造成过多的负载?
  确信会给服务器造成过多负载的人也有其解释的理由,alert以模态窗体出现,在浏览器处理过程中,遇到模态窗体时线程会暂时处理等待状态,直到模态窗体被取消。
那么也就使说在web请求过程中,alert以模态窗体如果不被关闭,那么浏览器当前的线程也会处于等待状态,由于浏览器和服务器的连接也会迟迟不被释放。如果真正如此的话,那么就会给服务器造成极大的压力。
    我对此进行了简单的测试,我假设在alert状态下,浏览器会处于等待状态。我用一下代码进行测试

         private  void Page_Load( object sender, System.EventArgs e)
         {
            this.Page.Response.Write(System.DateTime.Now.Ticks+"||\n");
            this.Page.Response.Write("<SCRIPT >alert(\"ee\");</SCRIPT>");
            this.Page.Response.Write(System.DateTime.Now.Ticks+"||\n");
            
        }

测试是在.net下进行的,只是简单的判断alert之间服务器的时间和alert之后的响应时间。如果说浏览器会处于等待状态,那么二者之间后有一个比较明显的差值。而其这个值会随alert被关闭的时间越迟而越大。
        但是我测到的结果是二则相等。不伦等待多久去关闭alert。
        我从测试中猜想alert不会给服务器造成过多的负载,因为浏览器在处理web请求的过程中,进行远程数据请求和数据显示是分线程处理。所以即便alert的模态显示会使显示的当前线程处于等待状态,但是这并没有影响到远程数据请求。
      当然我的测试有点片面,如没有去监视服务器当时的状态,以及测试数据量的不足。但是只是从侧面去分析这个问题,希望大家能够共同讨论。















本文转自小余(Yice)博客园博客,原文链接:http://www.cnblogs.com/yice/archive/2008/04/17/223644.html    ,如需转载请自行联系原作者


相关文章
|
6月前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
178 1
|
6月前
|
JavaScript 前端开发 Java
liteflow规则引擎 执行Javascript脚本
liteflow规则引擎 执行Javascript脚本
167 1
|
6月前
|
移动开发 JavaScript 数据可视化
分享88个JS播放器脚本,总有一款适合您
分享88个JS播放器脚本,总有一款适合您
118 0
|
6月前
|
移动开发 JavaScript 前端开发
分享95个JS表单脚本,总有一款适合您
分享95个JS表单脚本,总有一款适合您
54 0
|
6月前
|
移动开发 JavaScript 前端开发
分享106个JS表单脚本,总有一款适合您
分享106个JS表单脚本,总有一款适合您
45 0
|
6月前
|
移动开发 JavaScript 前端开发
分享98个JS表单脚本,总有一款适合您
分享98个JS表单脚本,总有一款适合您
61 0
|
6月前
|
JavaScript 前端开发 Unix
Node.js Shell 脚本开发指南(中)
Node.js Shell 脚本开发指南(中)
124 0
|
6月前
|
JavaScript 前端开发 Shell
Node.js Shell 脚本开发指南(上)
Node.js Shell 脚本开发指南(上)
157 0
|
6月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
139 0
|
6月前
|
JavaScript 前端开发 API
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
74 0