今天遇到一个神奇的问题--万能的alert出问题了,javascript怎么办?
2012-03-07 22:08 PHP淮北 阅读(9207) 评论(15) 编辑 收藏 举报摘要:本文讨论关于js中万能的调试函数alert的长度问题
前言:
js中万能的调试工具alert可谓是屡试不爽的利器,不过今天在调试的时候意外发现一个很有意思的问题,在这里和大家一起讨论。
鉴于作者js菜鸟一枚,还望高手指点一二。
alert出问题了?
今天下午在把ajax返回的数据拼装成字符串,以便减少对DOM的多次插入问题的时候,alert拼装成的字符串的时候发现,字符串不完整,貌似被自动截断了,刚开始以为是js中的字符串难到还有长度限制,晚上回去的时候测试了一下,alert与字符串的问题。
测试代码:这里采用for循环1000次拼装成一个字符串,然后alert
<div id='count' width=100% height=30 style="background:red; font-size:30"></div> <script type="text/javascript"> var html =""; for(i=0;i<10000;i++){ html +=''+i+'abcdefghij' } alert(html) document.getElementById("count").innerHTML = html; </script>
alert测试的截图:
可以看到这个字符串很明显被截断了:字符串最后几个是774abcdefghij775abcdefghij776abcdefghij777abcdef
也就是alert只显示了778次的循环值,
在看我这个这个拼接的字符串显示在页面的截图:
字符串正好是循环10000次的字符串值,说明js中的字符串目前没有长度限制的。
那么alert字符串难道有字符串限制?
我们错了计算一下alert出了多长的字符串
10*777+ 6 +10 +90*2+ 678*3=10000字符
一个英文占一个字节,那么这个字符串的长度是10000字节/1024大约是10kb
但是为什么会是这样呢?
自己在百度谷歌搜索alert长度 却得到不到答案,也没有相关资源,
博客园里有很多人写js教程,希望js高手帮我解析一下,为什么万能的alert有长度限制?
本文标题有标题党嫌疑,但是为了解决这个问题,各位就见谅了
本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名:PHP10086博客网(PHP淮北):http://www.php10086.com,也可以邮件与我联系。