javascript_ru | Technologies

Telegram-канал javascript_ru - javascript_ru

2744

Сообщество любителей самого популярного языка программирования в мире. Публикация вакансий: @javascript_jobs Чаты: @frontend_ru @css_ru Каналы: @defront @frontendnoteschannel Флуд: @javascript_ru_flood Важно! http://nometa.xyz и http://neprivet.ru

Subscribe to a channel

javascript_ru

Ну тогда всё как я говорил ранее (или такой вариант) + JSON.stringify() (если нужна наглядность для дебага)

const obj = { k2: 'v2', k1: 'v1'}
const objSorted = {}
Array
.from(Object.keys(obj))
.sort()
.forEach(k =>
objSorted[k] = obj[k]
)
JSON.stringify(objSorted)

Читать полностью…

javascript_ru

А, т.е. запрос с клиента на сервер даже не формируется, если набор аргументов, составляющих данные запроса (которые могут быть в объекте со случайным порядком свойств) уже есть в кэше. А кэш всё-таки хранится в виде какой-то мапы ключ-значение. И вот этот ключ (по сути всё тот же хэш, квази- или полностью уникальный) нужно вычислять так, чтобы для объектов { k2: 'v2', k1: 'v1' } и { k1: 'v1', k2: 'v2' } он был одинаковым. Верно?
Если так, то моё первоначальное предположение по поводу конечной цели остаётся верным: нужно вычислить хэш объекта с параметрами для запроса.

Читать полностью…

javascript_ru

клиентский кэш, не серверный

Читать полностью…

javascript_ru

Жанна Лебедева has been banned! Reason: CAS ban.

Читать полностью…

javascript_ru

cache key
у реквеста есть параметры, по ним создается кэш ключ, для SWR (Stale-while-revalidate)

Читать полностью…

javascript_ru

Уверен, что для вычисления хэша объектов есть 100% рабочие решения, которые не требуют двойных преобразований объектов. В т.ч. не требуют сериализации в JSON

Читать полностью…

javascript_ru

правда, собирать объект заново через Object.fromEntries как будто бы не очень оптимально, я бы возвращал строки из .map'а, а потом их join'ил

Читать полностью…

javascript_ru

@warning_bva можете пояснить своё недовольство? Интересно же

Читать полностью…

javascript_ru

вроде бы, это костыль для обратной совместимости с доисторическими временами, когда в ЖСе не было отдельных массисов, и их роль выполняли объекты

Читать полностью…

javascript_ru

как это нет? есть. просто ключи-числа >=0 идут первыми и по порядку. остальные — в порядке создания
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

The traversal order, as of modern ECMAScript specification, is well-defined and consistent across implementations. Within each component of the prototype chain, all non-negative integer keys (those that can be array indices) will be traversed first in ascending order by value, then other string keys in ascending chronological order of property creation.

Читать полностью…

javascript_ru

да все ок начиная с ES2015 https://stackoverflow.com/a/54670669/1878180

Читать полностью…

javascript_ru

этот факт внезапно на другой реализации (или "завтра" на той же) может не сработать

Читать полностью…

javascript_ru

по факту конкретная реализация и все ок работает с кодом выше

Читать полностью…

javascript_ru

например два объекта, в каждый добавляем значения в одном порядке - на выходе объекты с одинаковой последовательностью ключей

Читать полностью…

javascript_ru

но он ведь не случайный каждый раз при создании объекта

Читать полностью…

javascript_ru

угу, ключи строковые в обычной Map'е, key => resposeData
хэш не годится, хочу видеть параметры в ключе для наглядности/дебага

Читать полностью…

javascript_ru

блин меня забанили в @js_ru за вброс мемасика :(

Читать полностью…

javascript_ru

нет, URL параметры могу быть в любой последовательности
ключ формируется по аргументам функции (массив или объект примитивных значений) выполняющей запрос на сервер

Читать полностью…

javascript_ru

Я верно понял, что Вам для возможности кэширования при формировании запроса важно, чтобы URL
всегда был /ep?k1=v1&k2=v2,
а не /ep?k2=v2&k1=v1, например?

Читать полностью…

javascript_ru

ой, сорян, не заметил - уже "кэш", а не "хэш". Вообще теперь не понимаю. Что имеется в виду?

Читать полностью…

javascript_ru

Да, но он этого не уточнил. И я согласен, я тоже не уточнил, в каких случаях.
Тут ведь в чём вопрос - эти нюансы надо как-то помнить. Или лазить в спеку каждый раз, когда подзабыл, особенно, когда прыгаешь между ЯП. Я же придерживаюсь решения, которое гарантированно должно работать

Читать полностью…

javascript_ru

не вижу причин, почему у автора это должно не получиться. если только он не пишет под древние браузеры

Читать полностью…

javascript_ru

А если друг уже знает Vue?

Читать полностью…

javascript_ru

Не спорю, в спеке ES2015 всё так. @crabvk

Читать полностью…

javascript_ru

например так: Array.from(Object.keys(o)).sort().map(k => [k, o[k]])

Читать полностью…

javascript_ru

можно преобразовать объект, например, в массив, где порядок как раз гарантирован

Читать полностью…

javascript_ru

считайте, что объект - это Map<string,valueType>

Читать полностью…

javascript_ru

нет, это не гарантируется спецификацией

Читать полностью…

javascript_ru

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

Читать полностью…

javascript_ru

неправильно Вы "так и делаете", ибо на выходе всё равно получится объект с непредсказуемым порядком свойств, идём по кругу

Читать полностью…
Subscribe to a channel