У меня есть файл данных, разделенный новой строкой, с различными именами, которые я хочу извлечь в массив для обработки в JavaScript. Этот набор имен в конечном итоге нужно будет отсортировать, но сейчас я работаю над самим процессом загрузки файлов. Вот мой код в его нынешнем виде.
var nameslist = document.baseURI.split('.'); nameslist.pop(); nameslist = nameslist.join('.') + ".dat";
console.log("Attempting to read from file: " + nameslist);
var reader = new XMLHttpRequest() || new ActiveXObject('MSXML2.XMLHTTP');
reader.open("GET", nameslist, false);
reader.send(null);
nameslist = reader.responseText.split('\n');
nameslist.pop();
console.log("Elements read: " + nameslist.length);
Как и ожидалось, с файлом данных, состоящим из трех имен (для тестового примера), я получаю следующий результат в своем журнале консоли...
Попытка чтения из файла: file:///home/username/Desktop/test/test.dat test.js:11
Прочитано элементов: 3 test.js:19
Проблема в том, что я также получаю следующее предупреждение и ошибку в своем журнале, которые я хотел бы устранить (поскольку простое игнорирование этого может привести к проблемам в дальнейшем)...
Синхронный XMLHttpRequest в основном потоке устарел из-за его вредного воздействия на работу конечного пользователя. Для получения дополнительной помощи http://xhr.spec.whatwg.org/ test.js:14
синтаксическая ошибка test.dat:1
Из моего исследования предупреждения об обесценивании кажется, что Javascript как язык не любит синхронные операции, так как это замедляет скорость работы скрипта. Однако в этом случае мне нужно, чтобы все было загружено до того, как остальная часть скрипта сможет осмысленно работать. Я знаю, что могу реорганизовать это, чтобы поместить остальную часть скрипта в функцию, которая вызывается после того, как данные будут извлечены из responseText, и просто использовать true в строке reader.open, но есть ли лучший способ заставить JavaScript синхронно загрузить рассматриваемый файл данных без необходимости запуска функции main(), которая будет вызываться только один раз?
Что касается мошеннической ошибки, указывающей на первую строку файла данных, то я откровенно озадачен. Любые идеи о том, что может быть причиной такого поведения?
Заранее благодарю за любые ответы, которые я получу от сообщества.
.datкак xml. Попробуйте установить свойствоresponseType. - person Bergi   schedule 05.03.2015