Я пишу пользовательский скрипт, который нужно импортировать/читать из большого текстового файла.
Текстовый файл имеет размер в несколько ГБ, и если использовать split('\n') будет создан массив с миллионами в качестве длины массива.
Вы скажете: «О, но зачем вам обрабатывать так много данных». Мне нужно, но мне не нужно хранить его в массиве. Я принимаю это.
При запуске пользовательского скрипта под firefox он будет зависать, если массив, в котором хранится текстовый файл, имеет длину более 50 000. Это достаточно справедливо.
Очевидно, что мне нужен способ перебора большого текстового файла построчно ('\n') без фактического сохранения всего файла в строке, а затем в массиве. Я подозреваю, что Javascript этого не сделает. отлично подходит для этого, но, поскольку это пользовательский скрипт, я не уверен, какие у меня есть другие варианты.
Не то, чтобы мой код действительно имел значение, но вот что я делаю в двух словах. Это исследовательский проект и ничего зловещего. Ниже приведен более или менее псевдокод.
var wordListString = GM_getResourceText("wordlist");
var wordListArray = wordListString.split('\n');
var username = "TestUsername";
$userField.val(username);
for (var i = 0; i < wordListArray.length; i++)
{
(function(o) {
setTimeout(function()
{
if ($userField.val() != username)
$userField.val(username);
$passwordField.val(wordListArray[o]);
setTimeout(function() {$loginButton.click()}, 50);
}, o * 1000);
})(i);
}
GM_xmlhttpRequest()
для получения каждой страницы, (2) использует эти значения для атаки на ваш тестовый сайт, (3) повторяет при необходимости. ... Вам лучше сделать это на Python (или аналогичном), пользовательский скрипт - грубый, медленный, хрупкий инструмент для такого рода вещей. - person Brock Adams   schedule 30.03.2014