@mopah

Почему при обработке файла JS-скриптом зависает браузер?

Всем добрый день!
Стояла задача вытащить со стороннего сайта поставщика описание товаров. Товаров было много (более 1000), написал парсер, чтобы собрать описания позиций. Собирал информацию JS-скрипт, когда собрал, данные преобразовал в JSON (использовал JSON.Stringify), отправил в PHP скрипт и записал их в файл, т.к. JS писать в файл не может. С этим файлом теперь работаю, чтобы разобрать описания, обработать их и т.д. Файл имеет примерно такую структуру:
[
["\n                                                    \n    <div><p><br></p><div>Всякое описание текста.</div><div><br>Производитель: Такой-то</div><div>           <br>Доп параметры.</div><div><br>Дата производства: 2012г.          <br><br>Еще что-то .</div><div> </div></div>\n\n                            \n            ","\n                                                    \n            <div class=\"ty-product-feature\">\n        <span class=\"ty-product-feature__label\">Страна:</span>\n\n                            \n        <div class=\"ty-product-feature__value\">Китай</div>\n        </div>\n    \n    \n                            \n            "],
["\n                                                    \n    <div><p><br></p><p>О товаре<br></p><div>Описание</div><div>Еще всякое.</div><div>Еще чуть-чуть текста            <br>Еще</div><div>Описание вновь              <br>Еще параметр</div></div>\n\n                            \n            ","\n                                                    \n            <div class=\"ty-product-feature\">\n        <span class=\"ty-product-feature__label\">Страна:</span>\n\n                            \n        <div class=\"ty-product-feature__value\">Китай</div>\n        </div>\n    \n    \n                            \n            "]
]

Вот такое описание товаров вытащил с сайта поставщика (пример по 2-м товарам, всего их более 1000). Изначально был двумерный массив, по каждому товару 2 описания. И оно лежит в файле.
Начинаю разбирать, через Ajax подгружаю файл, хочу вытащить голый текст из тэгов, средствами jQuery, по идее, это сделать проще простого, но вот тут идет загвоздка. Скрипт:
jQuery.ajax({
			type: "GET",
			url: "price-list-parsed-BT_21-Apr-17--17-41-36.txt",
			dataType: "json",
			error: function() {
				console.log("Не вышло");
			},
			success: function(temp) {
				newArr = temp;
				for (var i=0; i<newArr.length; i++) {
					workArr[i] = [];
					for (var j=0; j<newArr[i].length; j++) {
						workArr[i][j] = jQuery(newArr[i][j]); //***
					}
				}
			}
		});

Т.к. я получаю данные из файла в формате JSON, то их нужно преобразовать в массив, сделав все элементы элементами jQuery, чтобы применять, например, метод html() для добычи текста из тегов. Метод Parse здесь невозможен, т.к. здесь много лишних символов, обо что парсер споткнется. Перебираю файл в цикле, делаю каждый элемент объектом jQuery, записываю в массив (строчка, помеченная ***), и вот на этом этапе браузер виснет. Не хотят элементы json становиться элементами jQuery. Не могу понять, почему. Без преобразования недоступны методы find, html, text и пр. Что я упускаю, в какую сторону копать никак не пойму, прошу помочь, кто может.
Заранее всем спасибо.
  • Вопрос задан
  • 883 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
  • JS писать в файл вполне себе может – используйте вместо браузера node.js – см. fs.writeFile() и др.
  • Если так уж хотите в браузере – можете задействовать web worker – это как бы параллельный процесс, который не тормозит страницу/интерфейс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы