2010-03-16 115 views
3

使用ajax div啓用返回函數我已經創建了這些簡單的函數,我想知道一個.js全局變量可以保存多少數據?javascript全局變量可以保存多少數據?

var dataAfterSearch; //global variable which holds our search results 

function goBackAfterSearch() { 
    /** 
    * function which displays the previous state 
    * 
    **/ 
    $.ajaxSetup ({ 
     cache: false 
    }); 
    //alert("Previous Search" +dataAfterSearch); 
    $('#result').html(dataAfterSearch); 
    paginateIt(); 
} 
function setDataAfterSearch(data) 
{ 
    /** 
    * function to set the global dataAfterSearch 
    * 
    **/ 
    dataAfterSearch = data; 
} 

親切的問候

回答

0

全局變量是不是比什麼,有多少,他們可以持有非全局變量有什麼不同。規範沒有提到對字符串長度的限制(一個字符串是AJAX會返回的字符串),所以我認爲它是依賴於實現的。

我對bytes.com他們提一些限制,他們之間不同的瀏覽器達到發現this discussion

+0

tx,雖然我希望它是無限的。可能需要重新考慮我的解決方案:( – alex 2010-03-16 18:34:30

+0

那麼,所有的數據都會受到一定的限制,計算機沒有無限的內存空間,甚至沒有硬盤空間,只需要多少數據?完成? – Bob 2010-03-16 18:51:50

+0

我正在開發一個多任務過濾器搜索工作列表,結果顯示沒有頁面刷新(jQuery/ajax),當用戶在工作詳細頁面時,我需要一個上一頁的解決方案。比方說,2000年的工作/行的列表可以這樣保存在一個全局變量??看到simplyfied例如:bldd.nl/stackoverflow/pagination/index2.php – alex 2010-03-16 18:57:50

0

在JavaScript變量可以保持物體或字符串。一個對象是一個無限的數據結構。字符串僅受實現的限制(如Bob所說),並且不應該成爲您的限制。

+0

@PanCrit,字符串僅由執行 你能解釋這個給我限制/給我一個例子嗎? (如果你能找到時間)。我不確定我的功能是否有這些限制 – alex 2010-03-16 18:48:11

12

沒有限制,最大尺寸爲瀏覽器/執行特定的。

您可以通過執行這樣的腳本測試極限:

var str = ""; 
var sizeCount = 0; 
while(true) { 
    str += "a"; 
    if(++sizeCount >= 1048576) { // Show an alert for every MB 
     alert(str.length); 
     sizeCount = 0; 
    } 
} 

我得到一個錯誤在Chrome 26MB左右。

+0

只需在Chrome中進行測試,即可達到35MB。我認爲它正在慢慢增加,或依賴於機器。 – agrublev 2016-02-05 22:57:43

1

雅有一個極限,到目前爲止我發現,該方法中的一個比數據轉換成Java腳本變量的6MB大小更返回數據,但它不能處理這麼大的量實際上它被扔誤差數據(JVM突然關閉)我試圖在Mozilla和IE瀏覽器,這是我觀察到的。