成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于IE的內存泄漏與JavaScript內存釋放

開發 后端 前端
在打開多個IE窗口時,系統經常會變慢,JavaScript運行也會變慢。這是由于IE內存泄漏所引起的。本文介紹如何通過JavaScript進行內存釋放,從而解決這個問題。

最近做一個公司的業務系統,公司要求能盡可能的與c/s近似,也就是如c/s一樣,點擊文本框可以彈出此項目的相關內容,進行選擇輸入。

我使用了彈出窗口,然后在子窗口雙擊選中項目,把選中的值返回給父窗體。在系統做完了之后,在客戶使用的過程,由于客戶使用的是512m的內存配置,所以在打開了30--40個窗體之后,ie的虛擬內存占用量達到近200m,從而使系統變慢,javascript的運行也變慢了。在google搜了一下之后,才知道可能是由于ie的內存泄漏引起的。

使用任務管理器,打開一個彈出窗口,ie內存就增加1-3m,然后關閉窗口,有時內存并不釋放,有時才釋放幾十k。看來問題出在了內存釋放上面。

接著按內存釋放這個思路,進行搜索查找方法,來進行解決這個問題。我找到一個javascript未公開的函數CollectGarbage,這個函數是用來進行內存釋放的。我在所有的彈出窗口結束之前把所有的自己定義的javasctip的變量設置為null,并調用CollectGarbage函數。

javascript中把變量設為null,javascript并不會把內存釋放,當下次再次定義變量時,就會覆蓋此變量所在的內存。如果不設為null,javascript再次定義變量時,會開辟一個新的內存空間。

在使用以上處理之后,再次打開窗口,ie的內存每次還是增加1-3m,但是在關閉窗口之后,則ie會釋放一定數量的內存在500k至2m。起到了一定的作用。

由于我在頁面中使用了第三方的控件,第三方的控件中的javascript中的內存是如何管理,就不是由我來控制的了。

1.javascript內存釋放的方法示例

把所有上級函數的參數即使設為null,并使用CollectGarbage來釋放內存。  

示例

  1. <script>     
  2.       
  3.   //32M     
  4.   function   AllocMem()     
  5.   {     
  6.   var   str="12345678";     
  7.   for(var   i=3;i<24;i++)     
  8.   str+=str;     
  9.   return   str;     
  10.   }     
  11.       
  12.   function   A(a)     
  13.   {     
  14.   a=null;     
  15.   return   r;     
  16.   function   r()     
  17.   {     
  18.   }     
  19.   }     
  20.       
  21.   var   f=A(AllocMem());     
  22.   alert(1);     
  23.   CollectGarbage();     
  24.   //明顯,已經釋放了。     
  25.   r=null;     
  26.   alert(2);     
  27.   CollectGarbage();     
  28.       
  29.   </script>     

里面對于內存釋放的規則(腳本層)已經理解得很透了。  
  (每一層菜單分配?M的內存.對著任務管理器才看到情況)  

注:
CollectGarbage()通常會在核心推出內存,因就是IE或NS程序結束的時候才會調用.這樣才是安全的。

說明:
1)   如果你在另一個window中keep了該window中的object的reference,即使關閉該window,內存也沒有釋放   
   
2)更糟糕的是,如果你keep的是一個DOM   object的reference,   關閉該object   所在window,   IE會crash,   報內存錯誤(或者要求,重新啟動)  

【相關資訊】

  1. 不唐突的JavaScript的七條準則
  2. JavaScript中的Object到底是什么
  3. 痛陳Javascript的缺點
  4. Javascript實現的超強語法高亮引擎
  5. JavaScript如何給JavaScript文件傳遞參數
責任編輯:王觀 來源: 動態網站制作指南
相關推薦

2015-03-30 11:18:50

內存管理Android

2024-03-11 08:22:40

Java內存泄漏

2021-08-05 15:28:22

JS內存泄漏

2020-06-08 09:18:59

JavaScript開發技術

2025-05-06 07:24:24

2022-05-26 09:51:50

JavaScrip內存泄漏

2017-11-09 16:07:00

Web應用內存

2010-07-16 09:11:40

JavaScript內存泄漏

2023-02-20 15:27:30

開發JavaScript內存管理

2019-01-30 18:24:14

Java內存泄漏編程語言

2022-09-28 10:35:31

JavaScript代碼內存泄漏

2023-12-18 10:45:23

內存泄漏計算機服務器

2012-02-22 21:28:58

內存泄漏

2019-06-24 19:00:09

JavaScript內存泄漏垃圾回收

2013-06-04 14:21:20

Vector內存釋放

2024-11-07 09:37:46

2009-06-16 11:17:49

內存泄漏

2012-06-19 15:12:20

Java內存泄露

2024-02-21 08:00:55

WindowsDWM進程

2024-01-30 10:12:00

Java內存泄漏
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久精品 | 国产一区二区三区在线免费 | 免费观看视频www | 国产视频二区 | 波多野吉衣久久 | 免费观看黄网站 | 我爱操 | 美日韩中文字幕 | 日韩一区二区三区在线观看 | 欧美三级在线 | 操久久| 宅女噜噜66国产精品观看免费 | 午夜欧美一区二区三区在线播放 | 亚洲福利av| 亚洲精品久久久久久国产精华液 | 欧美成ee人免费视频 | 日本成人中文字幕在线观看 | 久久久久久久综合色一本 | 日韩成人免费视频 | 综合久久99| 视频在线一区二区 | 狠狠干网 | 国产精品国产精品国产专区不卡 | 国产精品久久网 | 欧美日韩视频在线 | 爱综合 | 日本淫视频 | 蜜桃久久 | 久久精品综合 | 一区二区三区精品在线 | av一区二区三区 | 天天综合久久 | 国产精品久久久久久久久免费樱桃 | 黄色成人在线网站 | 国产美女高潮 | 免费观看一级黄色录像 | 精品国产99 | 国产精品不卡一区 | 亚洲视频免费观看 | 亚洲一区二区三区在线 | 99精品在线观看 |