2010-03-16 116 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浏览器,这是我观察到的。