出現(xiàn)“不能執(zhí)行已釋放的Script代碼”錯(cuò)誤的原因及解決辦法
更新時(shí)間:2007年08月29日 19:23:42 作者:
很多web開發(fā)者或許都遇到過這樣的問題,程序莫名奇怪出現(xiàn)“不能執(zhí)行已釋放Script的代碼”,錯(cuò)誤行1,列1.對于這種消息描述不著邊,行列描述更是亂寫的js錯(cuò)誤,相信是所有調(diào)試js程序的朋友們最郁悶也最憎恨的事情!遇到這種問題,最簡單的辦法直接把錯(cuò)誤貼到baidu或google那個(gè)小輸入框中讓他們先給點(diǎn)指點(diǎn),再去解決,可這次卻沒有這么容易,在baidu搜索似乎很多人都遇到過這種問題,但是都是些什么qq空間錯(cuò)誤,狂暈,或者就是只有問沒有答的,悶!
這種錯(cuò)誤從何調(diào)起?后面沒辦法,又是猜測又是try...catch蹦錯(cuò)誤,找了半天終于找到錯(cuò)誤的位置,可是發(fā)現(xiàn)寫的并沒有什么問題,后來絞盡腦汁思考程序的解釋過程,確依舊沒有什么頭緒。繼續(xù)baidu,突然在某網(wǎng)頁中看到一句話:當(dāng)一個(gè)頁面關(guān)閉時(shí)會自動釋放頁面的js。短短一句話給了我不小的啟發(fā)。檢查我的程序是否有頁面的關(guān)閉或轉(zhuǎn)向,發(fā)現(xiàn)是執(zhí)行了轉(zhuǎn)向,然后再回到這個(gè)頁面時(shí)出現(xiàn)了錯(cuò)誤。突然間覺得明白了。
場景:頁面有a和b兩個(gè)框架頁iframe,在b頁面中通過js將一個(gè)函數(shù)引用傳入到a頁面保存在a頁面的一個(gè)變量中,a頁面可以通過這個(gè)引用執(zhí)行b頁面的一些程序,當(dāng)b頁面刷新后由于a頁面對b頁面的引用已經(jīng)丟失,但a中仍然保存著b頁面之前傳過來的引用,但當(dāng)前的引用已經(jīng)不能引用到b頁面,這樣在執(zhí)行時(shí)就會出現(xiàn)“不能執(zhí)行已經(jīng)釋放的Script代碼”
解決辦法:在a頁面中加上容錯(cuò)處理,當(dāng)引用出現(xiàn)錯(cuò)誤時(shí)要將引用清空或指向一個(gè)默認(rèn)的函數(shù)。另外在b頁面再次載入時(shí)要重新給a頁面?zhèn)魉秃瘮?shù)引用,這樣就不會出現(xiàn)這樣的錯(cuò)誤了。
或許這里的描述有些過于抽象了,看一個(gè)演示再看看代碼就容易明白了,先test,然后return url,之后再test就會出現(xiàn)這個(gè)問題了
這種錯(cuò)誤從何調(diào)起?后面沒辦法,又是猜測又是try...catch蹦錯(cuò)誤,找了半天終于找到錯(cuò)誤的位置,可是發(fā)現(xiàn)寫的并沒有什么問題,后來絞盡腦汁思考程序的解釋過程,確依舊沒有什么頭緒。繼續(xù)baidu,突然在某網(wǎng)頁中看到一句話:當(dāng)一個(gè)頁面關(guān)閉時(shí)會自動釋放頁面的js。短短一句話給了我不小的啟發(fā)。檢查我的程序是否有頁面的關(guān)閉或轉(zhuǎn)向,發(fā)現(xiàn)是執(zhí)行了轉(zhuǎn)向,然后再回到這個(gè)頁面時(shí)出現(xiàn)了錯(cuò)誤。突然間覺得明白了。
場景:頁面有a和b兩個(gè)框架頁iframe,在b頁面中通過js將一個(gè)函數(shù)引用傳入到a頁面保存在a頁面的一個(gè)變量中,a頁面可以通過這個(gè)引用執(zhí)行b頁面的一些程序,當(dāng)b頁面刷新后由于a頁面對b頁面的引用已經(jīng)丟失,但a中仍然保存著b頁面之前傳過來的引用,但當(dāng)前的引用已經(jīng)不能引用到b頁面,這樣在執(zhí)行時(shí)就會出現(xiàn)“不能執(zhí)行已經(jīng)釋放的Script代碼”
解決辦法:在a頁面中加上容錯(cuò)處理,當(dāng)引用出現(xiàn)錯(cuò)誤時(shí)要將引用清空或指向一個(gè)默認(rèn)的函數(shù)。另外在b頁面再次載入時(shí)要重新給a頁面?zhèn)魉秃瘮?shù)引用,這樣就不會出現(xiàn)這樣的錯(cuò)誤了。
或許這里的描述有些過于抽象了,看一個(gè)演示再看看代碼就容易明白了,先test,然后return url,之后再test就會出現(xiàn)這個(gè)問題了
相關(guān)文章
微信小程序使用ucharts在小程序中加入橫屏展示功能的全過程
這篇文章主要給大家介紹了關(guān)于微信小程序使用ucharts在小程序中加入橫屏展示功能的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-09-09JavaScript?新提案optional?chaining可選鏈屬性原理詳解
這篇文章主要為大家介紹了JavaScript?新提案optional?chaining可選鏈屬性原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05VsCode插件自動生成注釋插件koroFileHeader使用教程
這篇文章主要介紹了VsCode插件自動生成注釋插件koroFileHeader使用教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01ES6中new Function()語法及應(yīng)用實(shí)例分析
這篇文章主要介紹了ES6中new Function()語法及應(yīng)用,結(jié)合實(shí)例形式分析了ES6中new Function()的基本語法、功能、原理、閉包等相關(guān)使用技巧,需要的朋友可以參考下2020-02-02js實(shí)現(xiàn)簡潔大方的二級下拉菜單效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)簡潔大方的二級下拉菜單效果代碼,涉及javascript通過鼠標(biāo)事件控制頁面元素的動態(tài)變換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09JavaScript實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼及校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼及校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01