在任何时候您可以随时随地使用JavaScript对象的数量是否有限制?

问题描述:

我正在研究将Flash应用程序转换成JavaScript,但被告知可能由于我在旅途中必须拥有的对象的数量而可能无法使用。在任何时候您可以随时随地使用JavaScript对象的数量是否有限制?

这是真的,如果是,是什么限制?

JavaScript memory limit表明您可以在Firefox中分配至少20 MB的内存。

尽管有一定的限制,但我怀疑你会遇到内存限制。如果你正在转换一个非常动态的Flash应用程序,那么你的性能可能会太差。

+0

Thanks Per。该链接对于测试我需要使用的浏览器的功能非常有用。 – 2009-02-13 10:32:16

因为这是Flash的主要功能,所以Flash在移动物体方面非常高效。使用JavaScript来移动HTML中的对象会变得更慢。尽管如此,使用JavaScript可以获得相当惊人的效果。

请参阅Lemmings

+0

感谢您的回答。这是一个关于绿色标记分配的紧密呼叫,但我必须和Per一起去,因为在他的链接中脚本对于测试我需要使用的每个浏览器都非常有用。虽然对JS的Lemmings版本印象非常深刻。这是得到书签! – 2009-02-13 10:31:33

该脚本的改进版本为link text。这是因为它使用了连接,并且可以让浏览器有一些时间来更新页面evey。

function allocate_mem() { 
    var mega=[]; 
    // Strings are stored as UTF-16 = 2 bytes per character. 
    // Below a 1Mibi byte string is created 
    for(var i=0; i<65536; i++){ 
     mega.push('12345678') 
    } 
    mega=mega.join(""); 

    var x=document.getElementById("max_mem"); 

    var size=0; 
    var large=[]; 
    function allocate() { 
     ++size; 
     //if (size>400) {alert(large.join("").length/1048576); return; } 
     large.push("."+mega.slice(0)); 
      x.innerHTML = "max memory = " + size + " MB"; 
     setTimeout(allocate, size %10 ? 0: 200); 
    } 

    allocate(); 

}