Сообщество любителей самого популярного языка программирования в мире. Публикация вакансий: @javascript_jobs Чаты: @frontend_ru @css_ru Каналы: @defront @frontendnoteschannel Флуд: @javascript_ru_flood Важно! http://nometa.xyz и http://neprivet.ru
особенность дат, они не попадают в json, их там хранить надо в преобразованном виде, так что об этом надо помнить
в остальном ничего особенного, тип как тип
тип данных Date, строковое представление - toJSON, числовое унарный плюс
другие манипуляции через методы
Виктория Васильева has been banned! Reason: CAS ban.
Читать полностью…Надо просить чтоб слово кто то незабаненный замолвил.
Если у тебя получится, дай знать плиз
Доводы важности опенсорса и как опенсорс влияет на экономику им не понравились)
Читать полностью…Меня там забанили после того как я попросил помочь бесплатно плагин написать )
Читать полностью…Ну мы ж ванильный JS предполагали. А так - да, я говорил, что по-любому для хранения кэша объектов (в т.ч. с учетом порядка ключей) есть либы
Читать полностью…А быстрее, конечно так будет:
const obj = { k2: 'v2', k1: 'v1'}Читать полностью…
Object.keys(obj)
.sort()
.map(k =>
`${k}=${obj[k]}`
)
.join()
Object.keys кстати string[] возвращает, нет смысла в Array.from
ну я примерно так и делаю только с Object.fromEntries
угу, ключи строковые в обычной Map'е, key => resposeData
хэш не годится, хочу видеть параметры в ключе для наглядности/дебага
нет, URL параметры могу быть в любой последовательности
ключ формируется по аргументам функции (массив или объект примитивных значений) выполняющей запрос на сервер
Я верно понял, что Вам для возможности кэширования при формировании запроса важно, чтобы URL
всегда был /ep?k1=v1&k2=v2
,
а не /ep?k2=v2&k1=v1
, например?
ой, сорян, не заметил - уже "кэш", а не "хэш". Вообще теперь не понимаю. Что имеется в виду?
Читать полностью…Да, но он этого не уточнил. И я согласен, я тоже не уточнил, в каких случаях.
Тут ведь в чём вопрос - эти нюансы надо как-то помнить. Или лазить в спеку каждый раз, когда подзабыл, особенно, когда прыгаешь между ЯП. Я же придерживаюсь решения, которое гарантированно должно работать
Всем привет. У меня был долгий перерыв от программирования. Но все таки решил вернуться. У меня вопрос. Как правильно работать с датами? В js. Спрашиваю забегая на будущее. Надеюсь услышать полезную информацию!😄 Если можно.
Читать полностью…Светлана Гончарова has been banned! Reason: CAS ban.
Читать полностью…печально когда в таких популярных группах админ(ы) строгие
Читать полностью…слишком просто в реализации в моем кейсе чтобы либу использовать
Читать полностью…чуть больше аллокаций, но вот ни пофиг, это же js :)
Читать полностью…Ну тогда всё как я говорил ранее (или такой вариант) + 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)
А, т.е. запрос с клиента на сервер даже не формируется, если набор аргументов, составляющих данные запроса (которые могут быть в объекте со случайным порядком свойств) уже есть в кэше. А кэш всё-таки хранится в виде какой-то мапы ключ-значение. И вот этот ключ (по сути всё тот же хэш, квази- или полностью уникальный) нужно вычислять так, чтобы для объектов { k2: 'v2', k1: 'v1' }
и { k1: 'v1', k2: 'v2' }
он был одинаковым. Верно?
Если так, то моё первоначальное предположение по поводу конечной цели остаётся верным: нужно вычислить хэш объекта с параметрами для запроса.
cache key
у реквеста есть параметры, по ним создается кэш ключ, для SWR (Stale-while-revalidate)
Уверен, что для вычисления хэша объектов есть 100% рабочие решения, которые не требуют двойных преобразований объектов. В т.ч. не требуют сериализации в JSON
Читать полностью…правда, собирать объект заново через Object.fromEntries
как будто бы не очень оптимально, я бы возвращал строки из .map'а, а потом их join'ил