最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
javascript溢出,js堆棧溢出

javascript在使用textinput時(shí)出現(xiàn)堆棧溢出

你在事件響應(yīng)時(shí)改變文本框的值,會(huì)導(dǎo)致再次觸發(fā)textinput事件,然后就死循環(huán)了,當(dāng)然棧就溢出了。而keyup事件不會(huì)受影響

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、浮山ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的浮山網(wǎng)站制作公司

javascript 為什么這樣會(huì)無(wú)限遞歸自己,從而造成死循環(huán)并且溢出?

我先來(lái)解釋無(wú)限遞歸

先舉一個(gè)生活中的例子,就是那個(gè)經(jīng)典的《老和尚給小和尚講故事》的故事:

從前有座山,山里有個(gè)廟,廟里有個(gè)老和尚給小和尚講故事。

講的是什么故事呢?

講的是:

從前有座山,山里有個(gè)廟……

這就是無(wú)限遞歸了。

再來(lái)說(shuō)一下你的程序發(fā)生無(wú)限遞歸的原因:

ajQuery?是一個(gè)函數(shù)。執(zhí)行這個(gè)函數(shù)時(shí),函數(shù)中的?return?語(yǔ)句會(huì)返回一個(gè)值。

它會(huì)返回什么值呢?

返回值是執(zhí)行一個(gè)新的?ajQuery?函數(shù)的返回值,

那么這個(gè)新的?ajQuery?函數(shù)會(huì)返回什么值呢?

這個(gè)新的?ajQuery?函數(shù)會(huì)返回又一個(gè)新的?ajQuery?函數(shù)的返回值,

……

這是無(wú)限遞歸,也是一種死循環(huán)。

最后說(shuō)一下發(fā)生溢出的原因:

每次執(zhí)行?ajQuery?函數(shù),

都會(huì)在結(jié)束前執(zhí)行又一個(gè)新的?ajQuery?函數(shù),

并等待它結(jié)束,然后自身才能結(jié)束。

每執(zhí)行一個(gè)函數(shù)都要占用一些資源,只有函數(shù)結(jié)束后才有可能釋放這些資源。

可是,在無(wú)限遞歸過(guò)程中,不斷地執(zhí)行一個(gè)又一個(gè)函數(shù),卻從不結(jié)束這些函數(shù)。

所以,占用的資源就會(huì)越來(lái)越多。

直到占用的資源超出了允許的范圍,就溢出了!

JavaScript 左移位溢出問(wèn)題:255

JS 左移結(jié)果是一個(gè)有符號(hào)的32位整數(shù),255本身占了8位,左移24位就溢出了

可以參考這個(gè):

javaScript heap out of memory,怎么解決

這是堆棧溢出錯(cuò)誤。

可能的原因及解決辦法:

1、查看代碼是否有死循環(huán)、是否有無(wú)法結(jié)束的函數(shù)調(diào)用或遞歸調(diào)用。

2、也有可能是網(wǎng)頁(yè)上含有病毒腳本,對(duì)瀏覽器進(jìn)行了堆棧溢出攻擊,要?dú)⒍咎幚怼?/p>

3、瀏覽器打開(kāi)網(wǎng)頁(yè)過(guò)多,導(dǎo)致堆棧耗盡或?yàn)g覽器由于其它原因奔潰了,重啟瀏覽器試試。

4、重啟系統(tǒng)試試。

5、最壞情況,重裝瀏覽器或系統(tǒng)試試。

怎樣避免JavaScript中過(guò)長(zhǎng)遞歸導(dǎo)致的堆棧溢出

遞歸最容易導(dǎo)致的問(wèn)題就是堆棧溢出了,一般來(lái)說(shuō)操作系統(tǒng)給一個(gè)進(jìn)程劃分的棧內(nèi)存是2M(好像是),按照正常的程序處理,局部變量進(jìn)棧出棧,棧不太可能會(huì)溢出,但是遞歸會(huì)導(dǎo)致不會(huì)出棧,這就有可能導(dǎo)致堆棧溢出,你這里定義兩個(gè)int型變量,即8字節(jié),再加上保存的函數(shù)地址等信息,*100000次遞歸,還有一些其他的入棧的局部變量,可能已經(jīng)超出了最大的棧空間,所以溢出。


分享名稱:javascript溢出,js堆棧溢出
文章源于:http://fisionsoft.com.cn/article/dsdpegj.html