2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

IE8 ie9 瀏覽器“會(huì)話”問題

 quasiceo 2014-08-09
分類: 電腦知識 2012-02-28 13:03 1754人閱讀 評論(0) 收藏 舉報(bào)
 在ie8以上的的瀏覽器中,默認(rèn)情況下,直接使用ie的快捷方式打個(gè)多個(gè)ie窗口,這些所有的窗口都會(huì)向服務(wù)器傳遞同一個(gè)cookie值,從而服務(wù)器會(huì)認(rèn)為這些窗口的會(huì)話都是同一個(gè)會(huì)話,會(huì)引發(fā)一些意想不到的后果。

手動(dòng)打開的兩個(gè)瀏覽器進(jìn)程,訪問同一個(gè)頁面,發(fā)送/接收到的cookie是同一個(gè)值。這是瀏覽器本身所設(shè)計(jì)的,無法通過程序來更改。但是在客戶端可以通過以幾種方式設(shè)置后,讓不同的瀏覽器使用不同的會(huì)話:

 

1、  打開瀏覽器后,選擇文件菜單下的新建會(huì)話選項(xiàng)來打開一個(gè)新的瀏覽器窗口。

2、  對iexplore.exe添加一個(gè)快捷方式,在快捷方式后邊添加上啟動(dòng)參數(shù)-nomerge,以后使用該快捷方式啟動(dòng)瀏覽器:

3、  修改注冊表,在注冊表項(xiàng)HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下新加一個(gè)dword值TabProcGrowth=0,讓它 Loosely Couple

 

  1. Windows Registry Editor Version 5.00  
  2.   
  3. [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]  
  4. "TabProcGrowth"=dword:00000000  

 附:Windows 7 研究——IE8 松散耦合進(jìn)程框架探索(轉(zhuǎn)自:http://www./html/8972.html

 在2008年8月份IE8 Beta剛剛面世不久的時(shí)候,我曾經(jīng)用極短的篇幅介紹了一下IE8的新的Tab控制模型(詳情見:《IE8 新特性分析:IE8的穩(wěn)定性源自何處》 一文)。今天,我將繼續(xù)和大家分享一些最近一段時(shí)間獲得的新的知識。

IE8 松散耦合進(jìn)程框架,英文原文是Loosely Coupled IE (LCIE),是一種基于作業(yè)(Job)的進(jìn)程管理方式。這種方式已經(jīng)逐漸被各大瀏覽器所采用,例如Google Chrome。

下圖是IE8的LCIE框架結(jié)構(gòu):

作業(yè)是Windows 2000引入的一種進(jìn)程管理方式,可以用一個(gè)宿主進(jìn)程管理多個(gè)子進(jìn)程。管理進(jìn)程可以給子進(jìn)程設(shè)置很多屬性,特別是一些和性能相關(guān)的屬性,具體可以參考SetInformationJobObject Function (Windows) 的API說明文檔。

當(dāng)我們安裝完IE8以后,打開一個(gè)Tab,使用 Process Explorer 會(huì)發(fā)現(xiàn),有2個(gè)iexplore.exe實(shí)例,這個(gè)就是最典型的LCIE表現(xiàn):Tab工作在進(jìn)程空間里面,有一個(gè)獨(dú)立的框架進(jìn)程用于管理Tab進(jìn)程。

如下圖所示,我打開了4個(gè)Tab,出現(xiàn)了4個(gè)Tab進(jìn)程(進(jìn)程ID分別為 9000、9672、6052、3056),框架進(jìn)程的進(jìn)程PID是7416:

        因 為LCIE的模型決定了IE的框架和Tab是獨(dú)立的進(jìn)程體,因此相互之間是需要通信的,根據(jù)Process Explorer的顯示,框架進(jìn)程和Tab進(jìn)程的通信是使用的ALPC(高級本地過程調(diào)用,在Windows內(nèi)核里面經(jīng)??梢砸姷?,效率很高)機(jī)制(在 Windows Vista上面),關(guān)于LPC的技術(shù)解釋,請Google搜索。

我們繼續(xù)研究LCIE的 標(biāo)簽創(chuàng)建方式。當(dāng)我們新開啟一個(gè)Tab以后,系統(tǒng)會(huì)創(chuàng)建一個(gè)iexplorer.exe進(jìn)程用于和這個(gè)Tab綁定,那么我開啟10個(gè)Tab以后,是10個(gè) 進(jìn)程嗎?實(shí)際的測試結(jié)果是:不一定。具體創(chuàng)建多少個(gè)Tab進(jìn)程實(shí)際是由IE框架確定的,根據(jù)目前已知的結(jié)論,IE框架會(huì)根據(jù)可用的物理內(nèi)存大小確認(rèn)最多創(chuàng) 建幾個(gè)Tab進(jìn)程。

注:默認(rèn)情況下,我的2臺筆記本(物理內(nèi)存均配置了4GB,可用內(nèi)存一般在1.5GB左右)在Windows Vista里面,創(chuàng)建的Tab進(jìn)程最多是5個(gè)。

那么,是否有可能控制Tab進(jìn)程的數(shù)量呢?答案是可以的。IE8 Frame在啟動(dòng)的時(shí)候,會(huì)檢查注冊表

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下面的TabProcGrowth鍵值(鍵值類型DWORD),利用這個(gè)鍵值,就可以操作IE8的Tab數(shù)量了。

TabProcGrowth=0 IE框架和Tab工作在一個(gè)進(jìn)程里面,Tab采用線程的方式創(chuàng)建。

當(dāng)TabProcGrowth=0的時(shí)候,IE的保護(hù)模式(Protect Mode)會(huì)關(guān)閉,這種模式類似于在Windows Vista下面把 IE7 以 run as administrator方式啟動(dòng)。
TabProcGrowth=1 IE框架和Tab工作在不同的進(jìn)程里面。

但是Tab按照不同的mandatory integrity level (MIC)創(chuàng)建,舉例就是需要關(guān)閉保護(hù)模式的Tab工作在一個(gè)瀏覽進(jìn)程里面,另外的工作在另外的一個(gè)瀏覽進(jìn)程里面。

例 如:我把taobao.com和kztechs.com加入了Trusted Site列表里面,當(dāng)使用這個(gè)模式的時(shí)候,訪問taobao.com和kztechs.com的時(shí)候,Tab將工作在一個(gè)進(jìn)程里面,而訪問其他的站點(diǎn)的時(shí) 候,Tab將工作在另外的一個(gè)進(jìn)程里面。

這是因?yàn)榧尤隩rusted Site列表以后,IE的保護(hù)模式會(huì)關(guān)閉,MIC等級的不同造成了的不同的Tab進(jìn)程的出現(xiàn)。
TabProcGrowth>1 在這個(gè)模式下,TabProcGrowth的值將決定最多創(chuàng)建的Tab進(jìn)程數(shù)目。如果TabProcGrowth為100,那么最多創(chuàng)建100個(gè)Tab進(jìn)程。
TabProcGrowth 不存在(默認(rèn)情況) 使用默認(rèn)的機(jī)制,根據(jù)可用的物理內(nèi)存數(shù)量決定Tab進(jìn)程的數(shù)量。

 

關(guān)于IE8 LCIE的FAQ:

1、為什么不是每個(gè)Tab一個(gè)進(jìn)程,而有一個(gè)上限呢?

因 為創(chuàng)建一個(gè)進(jìn)程的開銷是遠(yuǎn)遠(yuǎn)大于創(chuàng)建一個(gè)線程的,創(chuàng)建一個(gè)進(jìn)程,需要重新加載所有相關(guān)的模塊,而且進(jìn)程間的切換也會(huì)帶來很大的性能損耗。IE8的LCIE 機(jī)制在達(dá)到Tab進(jìn)程最多數(shù)目以后,后續(xù)的新開網(wǎng)頁將將采用負(fù)載平衡的機(jī)制讓不同的Tab進(jìn)程進(jìn)行處理,以達(dá)到資源的最大利用。

2、LCIE模型里面,會(huì)話是怎么處理的?我怎么感覺到不同的Tab都使用的是同一個(gè)會(huì)話呢?

的確,因此Tab進(jìn)程的出現(xiàn),會(huì)話的處理是比較關(guān)注的一個(gè)點(diǎn)。在IE8里面,會(huì)話是和IE框架綁定的, 在這個(gè)IE框架下的所有Tab,共享同一個(gè)會(huì)話,具體來說就是:假設(shè)第一個(gè)Tab進(jìn)程訪問了msdn.microsoft.com網(wǎng)站并屬于了Live ID登錄以后,后續(xù)新開的Tab進(jìn)程如果也訪問了msdn.microsoft.com網(wǎng)站,那么是共享剛才的Live ID的,除非過期;而且,即使你從開始菜單里面點(diǎn)擊IE圖標(biāo),新創(chuàng)建的窗口也是使用先前的會(huì)話的。

3、在LCIE模型里面,如果讓不同的窗口使用不同的會(huì)話呢?

要在IE8里面,讓不同的窗口使用不同的會(huì)話,可以點(diǎn)擊文件菜單-->新建會(huì)話菜單項(xiàng),使用這個(gè)方式,新創(chuàng)建的窗口將采用一個(gè)新的會(huì)話,以便和之前的會(huì)話區(qū)分開來。

4、為什么有時(shí)候IE8 Tab進(jìn)程在訪問的頁面關(guān)閉以后,Tab進(jìn)程還是存在呢?

這 是為了性能考慮的,防止用戶馬上又新開一個(gè)窗口,前面說過創(chuàng)建一個(gè)Tab進(jìn)程是需要很多資源的。在默認(rèn)情況下,IE8的Tab進(jìn)程在網(wǎng)頁窗口關(guān)閉以后,將 駐留60秒時(shí)間,然后再退出。當(dāng)然,我們也可以通過設(shè)置注冊表 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下的TabShutdownDelay DWORD鍵值來控制Tab進(jìn)程的退出時(shí)間。注意:TabShutdownDelay的單位是毫秒(1秒等于1000毫秒)。


 

文末:

IE8 相對于IE7來說,無論是進(jìn)程框架和渲染引擎都得到了極大的改善和優(yōu)化,而且在各種標(biāo)準(zhǔn)支持方面都比IE7好了不少,雖然IE8不是最快的瀏覽器,也不是 應(yīng)試分?jǐn)?shù)最好的瀏覽器,但是無論是兼容性還是安全性方面,都是值得大家去安裝的。如果你是因?yàn)槭懿涣薎E7的慢而使用FireFox或Chrome瀏覽器 的,現(xiàn)在可以再體驗(yàn)一下IE8,相信會(huì)比IE7有著明顯的改善的,呵呵。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多