максимальный размер объекта javascript в 10000 символов - PullRequest
2 голосов
/ 08 мая 2011

Когда я запускаю этот код, переменные элементы добавляют только 9999 символов, а остальное усекается. Я получил несколько ответов в предыдущем посте, но проблема все еще сохраняется.

var items = [];
for (var i = 1; i < 400; i++) {
    items.push('{"Key":' + '"this is a javascript value"' +
                ",'+'" + '"Value"' + ':' + '"this is value"}');
}
alert(items); 

Помощь!

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Вы alert вводите значение, которое означает, что массив преобразуется в строку и затем помещается в окно предупреждения.Скорее всего, строка обрезается до некоторой максимальной длины, в противном случае она просто не помещается на экране или в рамке по графическим причинам.

При попытке в памяти и только предупреждении о длине все кажетсяХорошо, также toString() возвращает правильную длину.Я пробовал 4000 элементов и анализировал длины: http://jsfiddle.net/LWD2h/1/.

1 голос
/ 31 декабря 2016

Существует обходной путь для ограничения в 10 000 символов для предупреждения (в FireFox, не тестировался в других браузерах).Если вы хотите отображать предупреждение только для целей отладки, а не для пользователя, вы можете использовать оператор подсказки.Код будет выглядеть следующим образом:

var myLongString = "A really long string";
prompt('',myLongString);

Когда это отобразится, вы увидите только одну строку текста в приглашении, но вы можете щелкнуть в поле приглашения и выбрать весь текст и вставить его в редактор, чтобыделай как хочешь.Было бы ужасно делать это с вашими пользователями, но это здорово для быстрой и грязной отладки.Оператор prompt удаляет все ваши переводы строк, поэтому перед его вызовом вы должны преобразовать их в какую-то другую строку, а затем преобразовать их обратно в текстовом редакторе.

Включение этого кода в приведенный выше код дает:

var myLongString= "A\nreally\nlong\nstring\nwith\nline\nfeeds.";
prompt('', myLongString.replace(/\n/g,"=@@=");

После вставки строки в ваш текстовый редактор вы должны выполнить поиск и заменить '= @@ =' на '\ n'.

...