2009-02-13 2 views
1

Я ищу преобразование приложения Flash, которое у меня есть на JavaScript, но мне сказали, что он, вероятно, не будет возможен из-за количества объектов, которые я должен был иметь на ходу.Есть ли ограничение на количество объектов JavaScript, которые вы можете иметь на ходу в любой момент времени?

Это правда, и если да, то какие пределы?

ответ

3

JavaScript memory limit показывает, что вы можете выделить не менее 20 МБ памяти в Firefox.

Существует определенно предел, хотя, но я сомневаюсь, что вы встретите ограничение на память. Скорее всего, ваша производительность будет слишком плохой, если вы конвертируете очень динамичное приложение Flash.

+0

Thanks Per. Ссылка была очень полезна для тестирования возможностей браузеров, которые мне нужно использовать. –

3

Вспышка очень эффективна при перемещении объектов вокруг, так как это ее основная функция. Использование JavaScript для перемещения объектов вокруг в HTML идет в путь, путь медленнее. Тем не менее удивительные вещи могут быть реализованы с помощью JavaScript.

См. Lemmings.

+0

Спасибо за ответ. Это был тесный вызов по назначению зеленого тика, но мне пришлось пойти с Пер, поскольку сценарий в его ссылке был очень полезен для тестирования каждого из браузеров, с которыми мне нужно работать. Очень впечатлен версией JS Lemmings. Это становится закладкой! –

1

Улучшенная версия сценария на 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(); 

} 
Смежные вопросы

 Смежные вопросы