Производительность JavaScript: лучше ли использовать объектную переменную или AJAX-запрос для больших объемов неизменяемых данных? - PullRequest
0 голосов
/ 02 ноября 2018

Итак, у меня есть большой объем данных, отформатированный как объект JavaScript, к которому мой сайт должен иметь доступ. Поскольку эти данные не будут обновляться, у меня есть два варианта: создать файл JavaScript и вставить данные как переменную. Или я могу загрузить данные в виде файла JSON, а затем с помощью Ajax-запроса получить данные и разобрать их в объект.

Вот код, демонстрирующий, что я имею в виду.

Опция 1 (сохранить данные как переменную объекта JS в отдельном файле JS):

Файл object.js

let myData = {
    "1": "A",
    "2": "B",
    "3": "C",
    "4": "D",
    "5": "etc..."
};

... И так далее, за исключением того, что мои данные очень велики, поэтому этот файл в итоге содержит более 25 000 строк.

И я использую эту переменную в некоторых script.js

let myVar5 = myData["5"];



Вариант 2 (сохранить данные в формате JSON, выполнить магию Ajax и выполнить синтаксический анализ в объекте JS)

файл object.json

{
    "1": "A",
    "2": "B",
    "3": "C",
    "4": "D",
    "5": "etc..."
}

А потом по моему script.js я так и делаю:

let url = "/data/object.json";
$.getJSON(url, function(response) {
    let data = JSON.parse(response);
    let myVar5 = data["5"]
}

Какой вариант будет иметь более высокую производительность с точки зрения памяти, скорости, хранилища и других практических вещей для веб-сайтов в Интернете?

1 Ответ

0 голосов
/ 02 ноября 2018

Какой вариант будет иметь лучшую производительность, с точки зрения памяти, ...

Вариант JSON на 7 байт короче

... скорость, ...

Если вам не нужен JSON для визуализации страницы в первый раз, загрузка ее из файла JSON впоследствии будет лучше, так как она загружается после отрисовки страницы, также анализ JSON, вероятно, быстрее, так как JS намного больше сложный к быстрому (но, вероятно, речь шла о наносекундах).

... хранилище, ...

не уверен, насколько это отличается от памяти. Возможно, оба файла кэшируются, а может и нет, это зависит от браузера и т. Д.

... и другие полезные вещи для сайтов в интернете?

Я бы не стал использовать жестко запрограммированный вариант, поскольку моя среда разработки попыталась бы проанализировать файл, чтобы подсказать мне его типы и свойства, что замедлит мой процесс разработки. Он не анализирует загруженные файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...