最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DWR內(nèi)存兼容及無(wú)法調(diào)用問(wèn)題解決方案

 更新時(shí)間:2020年10月16日 15:28:44   作者:cuisuqiang  
這篇文章主要介紹了DWR內(nèi)存兼容及無(wú)法調(diào)用問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在上次遇到DWR內(nèi)存泄漏問(wèn)題后根據(jù)網(wǎng)上的內(nèi)容對(duì)JS文件進(jìn)行修改,修改后發(fā)現(xiàn)還有一些兼容的問(wèn)題,同時(shí)還出現(xiàn)不能調(diào)用的一些情況。

而且根據(jù)統(tǒng)計(jì)DWR就算內(nèi)存泄漏,也不是特別嚴(yán)重,除非你一個(gè)瀏覽器跑幾天不關(guān)閉,而且實(shí)時(shí)刷新!

經(jīng)過(guò)再次查詢,得知IE瀏覽器有自己的一個(gè)垃圾回收的函數(shù):CollectGarbage();

CollectGarbage,是IE的一個(gè)特有屬性,用于釋放內(nèi)存的使用方法嘛應(yīng)該是,將該變量或引用對(duì)象,設(shè)置為null或delete

然后在進(jìn)行釋放動(dòng)作在做CollectGarbage前,要必需清楚的兩個(gè)必備條件:

引用

- 一個(gè)對(duì)象在其生存的上下文環(huán)境之外,即會(huì)失效。

- 一個(gè)全局的對(duì)象在沒(méi)有被執(zhí)用(引用)的情況下,即會(huì)失效。

對(duì)于對(duì)象何時(shí)失效,有這樣的一些解釋:

function testObject() {
var _obj1 = new Object();
}

function testObject2() {
var _obj2 = new Object();
return _obj2;
}

// 示例1
testObject();

// 示例2
testObject2()

// 示例3
var obj3 = testObject2();
obj3 = null;

// 示例4
var obj4 = testObject2();
var arr = [obj4];
obj3 = null;
arr = [];

在這四個(gè)示例中:

- “示例1”在函數(shù)testObject()中構(gòu)造了_obj1,但是在函數(shù)退出時(shí),它就已經(jīng)離開了函數(shù)的上下文環(huán)境,因此_obj1失效了;

- “示例2”中,testObject2()中也構(gòu)造了一個(gè)對(duì)象_obj2并傳出,因此對(duì)象有了“函數(shù)外”的上下文環(huán)境(和生存周期),然而由于函數(shù)
的返回值沒(méi)有被其它變量“持有”,因此_obj2也立即失效了;

- “示例3”中,testObject2()構(gòu)造的_obj2被外部的變量obj3持用了,這時(shí),直到“obj3=null”這行代碼生效時(shí),_obj2才會(huì)因?yàn)橐藐P(guān)系消失而失效。

- 與示例3相同的原因,“示例4”中的_obj2會(huì)在“arr=[]”這行代碼之后才會(huì)失效。

另外我發(fā)現(xiàn)許多人都說(shuō)了這樣一句話:

最后之最后,關(guān)于GC的一個(gè)補(bǔ)充說(shuō)明:在IE窗體被最小化時(shí),IE將會(huì)主動(dòng)調(diào)用一次CollectGarbage()函數(shù)。這使得IE窗口在最小化之后,內(nèi)存占用會(huì)有明顯改善。

我只能說(shuō),調(diào)用CollectGarbage()函數(shù)會(huì)有意外的收獲,但是他不是萬(wàn)能的,也不是調(diào)用就能釋放內(nèi)存更不是說(shuō)調(diào)用后和將瀏覽器最小化一次的效果一樣。

我們是每秒五次刷新,每次刷新點(diǎn)有一百多處,這樣瀏覽器的DOM始終是在增加和更新東西。算下來(lái),就是跑一個(gè)小時(shí)也是有很大消耗的。

更何況我們的軟件要跑在一個(gè)定制的機(jī)器上,發(fā)現(xiàn)這個(gè)機(jī)器的硬件有兼容問(wèn)題,我們將瀏覽器更新到IE7.0,進(jìn)行數(shù)據(jù)實(shí)時(shí)刷新后發(fā)現(xiàn),內(nèi)存一直增長(zhǎng),直到瀏覽器崩潰。但是不同機(jī)器崩潰的時(shí)機(jī)不同。

我在每次更新后調(diào)用垃圾回收函數(shù),發(fā)現(xiàn)瀏覽器的內(nèi)存仍在增加,但是間隔的有增有加,雖然總體還是在增加。由此,我們?cè)谀莻€(gè)機(jī)器上跑了十幾個(gè)小時(shí),瀏覽器內(nèi)存沒(méi)有超過(guò)50M。

很少有那個(gè)頁(yè)面會(huì)這樣大量的刷新,并跑這么長(zhǎng)時(shí)間吧,可是我們遇到了。

把問(wèn)題歸咎與DWR我發(fā)現(xiàn)不是很合理,至少現(xiàn)在我這么覺(jué)得,但是對(duì)于頁(yè)面有大量刷新和需要長(zhǎng)時(shí)間運(yùn)行這個(gè)需求來(lái)說(shuō),我覺(jué)得還是需要深入研究一下的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 小程序如何定位所在城市及發(fā)起周邊搜索

    小程序如何定位所在城市及發(fā)起周邊搜索

    這篇文章主要介紹了小程序如何定位所在城市及發(fā)起周邊搜索,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 微信小程序圖片選擇區(qū)域裁剪實(shí)現(xiàn)方法

    微信小程序圖片選擇區(qū)域裁剪實(shí)現(xiàn)方法

    本篇文章主要介紹了微信小程序圖片選擇區(qū)域屏裁剪實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 微信小程序的開發(fā)范式BeautyWe.js入門詳解

    微信小程序的開發(fā)范式BeautyWe.js入門詳解

    這篇文章主要介紹了微信小程序的開發(fā)范式BeautyWe.js詳解,它是一套專注于微信小程序的企業(yè)級(jí)開發(fā)范式,它的愿景是:讓企業(yè)級(jí)的微信小程序項(xiàng)目中的代碼,更加簡(jiǎn)單、漂亮,需要的朋友可以參考下
    2019-07-07
  • 在新窗口打開超鏈接的方法小結(jié)

    在新窗口打開超鏈接的方法小結(jié)

    有時(shí)候我們想讓用戶在新窗口打開網(wǎng)站,因?yàn)槟J(rèn)當(dāng)前窗口打開,很多情況下,用戶并不喜歡
    2013-04-04
  • 使用layui實(shí)現(xiàn)的左側(cè)菜單欄以及動(dòng)態(tài)操作tab項(xiàng)方法

    使用layui實(shí)現(xiàn)的左側(cè)菜單欄以及動(dòng)態(tài)操作tab項(xiàng)方法

    今天小編就為大家分享一篇使用layui實(shí)現(xiàn)的左側(cè)菜單欄以及動(dòng)態(tài)操作tab項(xiàng)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • JavaScript CSS 通用循環(huán)滾動(dòng)條

    JavaScript CSS 通用循環(huán)滾動(dòng)條

    核心是 position:relative;,才能讓其內(nèi)部的 ul 以絕對(duì)定位,通過(guò)改變 top 值實(shí)現(xiàn)向上移位置。
    2009-10-10
  • 兩個(gè)JavaScript中的特殊值null和undefined詳解

    兩個(gè)JavaScript中的特殊值null和undefined詳解

    Null和Undefined是JavaScript中非?;A(chǔ)和重要的概念,理解它們的含義、特點(diǎn)和使用方式對(duì)于避免出現(xiàn)錯(cuò)誤和編寫健壯的應(yīng)用程序非常重要,這篇文章主要介紹了兩個(gè)JavaScript中的特殊值null和undefined詳解,需要的朋友可以參考下
    2023-06-06
  • javascript中clipboardData對(duì)象用法詳解

    javascript中clipboardData對(duì)象用法詳解

    這篇文章主要介紹了javascript中clipboardData對(duì)象用法,詳細(xì)分析了clipboardData對(duì)象的功能及相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript實(shí)現(xiàn)異步提交表單數(shù)據(jù)

    JavaScript實(shí)現(xiàn)異步提交表單數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)異步提交表單數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • js本身的局限性 別讓javascript做太多事

    js本身的局限性 別讓javascript做太多事

    最近常有人在Q群里發(fā)問(wèn)諸如"怎樣讓js操作文件"、"怎樣讓js實(shí)現(xiàn)多線程"等問(wèn)題。
    2010-03-03

最新評(píng)論

桐梓县| 富平县| 宝鸡市| 乐清市| 台中市| 张家口市| 湘阴县| 梓潼县| 蒲江县| 右玉县| 内黄县| 申扎县| 海门市| 六安市| 兰溪市| 衡阳市| 高邮市| 文水县| 原阳县| 隆昌县| 沁阳市| 蕉岭县| 集贤县| 八宿县| 涟源市| 安西县| 平舆县| 海南省| 邯郸市| 皋兰县| 井陉县| 周口市| 修武县| 平安县| 张家川| 家居| 长治县| 措勤县| 辉南县| 罗定市| 鹤壁市|