Использование объекта window для хранения ответа сервера, нормально ли это?
По логике нужно было организовать поиск, фильтра и тд. на клиентской стороне, что бы не бегать в базу.
Данные сохраняю в объект window.data = {data}
Так вообще можно делать? Есть ли другое решение?
Вы без фремвока разрабатываете?
Погуглите state management JavaScript, есть полно готовых решений для управления состоянием.
Ну и если собрались "не бегать" в API за данными не забывайте про вторую фундаментальную проблему в разработке - инвалидация кеша.
Владимир Коротенко,
в урл не влезет,
в куки будут летать с каждым запросом, это еще хуже,
сторадж как вариант, но мне постоянно придется конвертировать с строки. Тогда чем хуже юзать объект window?
qqNemo, глобальные переменные всегда плохи и их следует избегать, второе это смесь кода и данных, что тоже не хорошо, еще возможна перезапись вашего обьекта какой нибудь либой.
Так что используйте любое из этих хранилищ.
и при инициализации приложения, подгружайте стейт с сервера, а дальше работайте уже с этим обьектом.
У вас ванильный JS или используете какойто фреймворк?
qqNemo, более чем. я показал вам нормальные (рекомендованные хранилища)
window крайне не рекомендуют для хранения, по вышеозвученным причинам
url хорош для SEO оптимизации
cookie и *storage хороши для длительного хранения состояния приложения
все остальное можно хранить в локальных переменных ну или делать форму со скрытым полем где сериализуете все что вам нужно (это подход ASP NET FORMS)
Клиента во фрейм. Фрейм на страницу. На странице все скрой кроме фрейма.
Данные помещай на странице в тег, массив и пр. Данные получай обращением из фрейма к странице куда поместил их.