今天遇到一個神奇的問題--萬能的alert出問題了,javascript怎么辦?


摘要:本文討論關於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測試的截圖:

QQ截圖20120307213114

可以看到這個字符串很明顯被截斷了:字符串最后幾個是774abcdefghij775abcdefghij776abcdefghij777abcdef

也就是alert只顯示了778次的循環值,

在看我這個這個拼接的字符串顯示在頁面的截圖:

QQ截圖20120307213829

字符串正好是循環10000次的字符串值,說明js中的字符串目前沒有長度限制的。

那么alert字符串難道有字符串限制?

我們錯了計算一下alert出了多長的字符串

10*777+ 6 +10 +90*2+ 678*3=10000字符

一個英文占一個字節,那么這個字符串的長度是10000字節/1024大約是10kb

但是為什么會是這樣呢?

自己在百度谷歌搜索alert長度 卻得到不到答案,也沒有相關資源,

博客園里有很多人寫js教程,希望js高手幫我解析一下,為什么萬能的alert有長度限制?

本文標題有標題黨嫌疑,但是為了解決這個問題,各位就見諒了

Technorati 標簽: js, alert


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM