Можете ли вы читать построчно в JavaScript?

Есть ли способ прочитать файл построчно в JavaScript, в частности, этот файл, который является словарем. Я пытался создать копию решателя java-анаграммы, которую я сделал несколько месяцев назад, но столкнулся с проблемой невозможности прочитать файл построчно. Я мог бы загрузить файл и сохранить его локально, если это будет иметь какое-либо значение для возможности его чтения.

3 ответа

Решение

Используйте YQL:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=cbfunc

Вот как выглядит скрипка:

window.callback = function(a) { window.file = a.query.results.body.p; go(); };

$.getScript('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=callback');

window.go = function() {
    var terms = file.split(' ');

    for (var i = 0; i < 100; i++)
        console.log(terms[i])
};

Скрипка только делает первые 100, но вы поняли идею (я надеюсь).

В большинстве случаев вы можете просто прочитать файл в память и затем разобрать его в строки. Если вы прочитаете все это в памяти с помощью вызова ajax, вы можете просто использовать data.split("\n") преобразовать его в массив строк.

Вы должны инициировать Ajax-запрос для такой операции. Чтение файла построчно, хотя и не рекомендуется через Ajax, так как вы в конечном итоге создадите множество запросов к серверу в процессе, так как JavaScript связан с клиентской стороной и ограниченным доступом. Ajax-запрос к серверу является надстройкой последних лет к нему.

Определенно вы ищете некоторую информацию, используя некоторые ключевые слова; так что было бы разумно, если бы вы добавили логику поиска в функции сервера; вызовите конкретную функцию через Ajax и верните набор результатов обратно в браузер. Эта функция может быть файлом, который генерирует результат, или веб-сервисом. Вы выбираете свой вкус.

Альтернативный вариант заключается в том, чтобы при запуске перекодировать информацию о файле в JSON ( о JSON) и позволить ему перейти в сценарий js клиента. Я бы не рекомендовал XML для этого, так как он потребляет много памяти браузера в терминах обработки. Был там!:(. Так как JavaScript имеет встроенную поддержку JSON, он будет работать гладко. Внимание, это подвергает данные локальным.

Другие вопросы по тегам