打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
博客园 - 一克动力 - 关于JavaScript脚本中的alert思考

关于JavaScript脚本中的alert思考

Posted on 2005-08-26 17:54 余冰 阅读(575) 评论(12)  编辑 收藏 收藏至365Key 所属分类: C#

   对于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的模态显示会使显示的当前线程处于等待状态,但是这并没有影响到远程数据请求。
      当然我的测试有点片面,如没有去监视服务器当时的状态,以及测试数据量的不足。但是只是从侧面去分析这个问题,希望大家能够共同讨论。

Feedback

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 18:09 by sunrise
多余的担忧,说明你对http没有了解

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 19:02 by ocean
呵呵,是比较多余

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 19:30 by Teddy
瞎说,呵呵~~ 看来楼主还不明白http协议的基本原理。

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 20:17 by myrat
ft,楼主不是个别现象。我们公司的产品一直是用alert的,后来请了个cto,说alert会加重server load,要我们全换掉,害得我做了个试验给他看才没话说。。。

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 21:09 by lovebanyi
alert后要 直接停掉的。一般是用来提示信息的。提示完了一般再来个location.href=‘xxx‘;或者
location.href.reload()
在asp.net中紧跟的就是下面这一句了
response.end
处理 一般是要这样的

不这样处理就说明程序有问题了

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 21:31 by 木野狐
alert 执行之前网页 html 已经完成了输出的。你写的那个测试例子没有道理。

# re: 关于JavaScript脚本中的alert思考   

2005-08-26 22:27 by 灵感之源
html是完全渲染完,推送到客户端再执行的。

# re: 关于JavaScript脚本中的alert思考   

2005-08-27 09:21 by lone
这哥们是不是做winform做多啦?
html是无状态的,是不会保持连接的吧

# re: 关于JavaScript脚本中的alert思考   

2005-08-27 10:17 by penboy
呵呵,尽管楼主有些误解,不过写出来还是让大家更加明白一些道理的!

# re: 关于JavaScript脚本中的alert思考   

2005-08-27 10:45 by efun
显示alert的时候,所有的html 都已经推到客户端了,怎么会加大服务器的压力??

# re: 关于JavaScript脚本中的alert思考   

2005-08-27 17:18 by Duiker
其实敢将文章放到首页,说明也是深思熟虑的,有错又何妨。

# re: 关于JavaScript脚本中的alert思考   

2005-08-27 19:25 by simida
呵呵,其实lz是跟大家开个玩笑的:)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
javascript的test方法的“陷阱”
Javascript的Defer属性
JavaScript中的null和undefined
xss攻击学习笔记
说说alert()的那些事儿-------javascript
Javascript整除 - chm2920 - JavaEye技术网站
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服