Size: a a a

2021 March 24

AL

Andrey Listochkin in Frontend UA
Valera CSS_Junior
при каждом гет запросе ведь браузер отправляет куки, даже при запросе картинок с сервера, джс файлов, css файлов? а если кука будет большая, то что лишние данные каждый раз передаются? ведь нам на сервере не нужны куки когда запрос на картинку например идёт. или я не правильно понимаю?
там кроме кук еще куча другого мусора в хедерах приходит. Браузер, например, шлет accep-language, хотя нам пофиг на язык браузера, когда мы картинку отправляем.
источник

AL

Andrey Listochkin in Frontend UA
Я к тому, что да, куки ходят. Но если ты не какой-нибудь Facebook, у которого на этих куках набегает нехило трафика, то этим оверхедом можно пренебречь
источник

AK

Alexander Kuzmenko in Frontend UA
Valera CSS_Junior
при каждом гет запросе ведь браузер отправляет куки, даже при запросе картинок с сервера, джс файлов, css файлов? а если кука будет большая, то что лишние данные каждый раз передаются? ведь нам на сервере не нужны куки когда запрос на картинку например идёт. или я не правильно понимаю?
Да, куки отправляются каждый раз. Но слишком большими они быть не могут, там ограничение 4096 байт
источник

AK

Alexander Kuzmenko in Frontend UA
А еще хром, например, перед каждым запросом шлёт ещё дополнительный запрос OPTIONS )
источник

AK

Alexander Kuzmenko in Frontend UA
Valera CSS_Junior
при каждом гет запросе ведь браузер отправляет куки, даже при запросе картинок с сервера, джс файлов, css файлов? а если кука будет большая, то что лишние данные каждый раз передаются? ведь нам на сервере не нужны куки когда запрос на картинку например идёт. или я не правильно понимаю?
Может быть подойдёт localStorage или sessionStorage
источник

AL

Andrey Listochkin in Frontend UA
Alexander Kuzmenko
А еще хром, например, перед каждым запросом шлёт ещё дополнительный запрос OPTIONS )
для простых GET и POST они не делаются. Только если там кастомные хедеры нужны или данные не формой, а например, JSONом отправляются
источник

NL

Nikita Lyubchich in Frontend UA
Andrey Listochkin
там кроме кук еще куча другого мусора в хедерах приходит. Браузер, например, шлет accep-language, хотя нам пофиг на язык браузера, когда мы картинку отправляем.
Тот же accept language быть полезен, если генеришь текст внутри картинки и тебе надо знать на каком языке его генерить
источник

AL

Andrey Listochkin in Frontend UA
Nikita Lyubchich
Тот же accept language быть полезен, если генеришь текст внутри картинки и тебе надо знать на каком языке его генерить
ага, я упрощал, чтобы донести мысль, что “ой куки каждый раз шлются” - это мелочь
источник

NL

Nikita Lyubchich in Frontend UA
Alexander Kuzmenko
А еще хром, например, перед каждым запросом шлёт ещё дополнительный запрос OPTIONS )
Не перед каждым, и не только хром. только если надо делать проверку CORS
источник

NL

Nikita Lyubchich in Frontend UA
Сорри за брюжжание, у меня вьетнамские флешбеки от JWT токенов в 16кб которые передаются на бекенды с каждым запросом
источник

AS

Alexey Shvayka in Frontend UA
Valera CSS_Junior
при каждом гет запросе ведь браузер отправляет куки, даже при запросе картинок с сервера, джс файлов, css файлов? а если кука будет большая, то что лишние данные каждый раз передаются? ведь нам на сервере не нужны куки когда запрос на картинку например идёт. или я не правильно понимаю?
передаются, но компресятся: https://blog.cloudflare.com/hpack-the-silent-killer-feature-of-http-2/
источник

AL

Andrey Listochkin in Frontend UA
Look at us peasants still running HTTP 1.1
источник

AR

Alexey Raspopov in Frontend UA
Нужна помощь с типизацией в тайпскрипте. Обновляю тайпинги для своей либы, упёрся в то, что типы не хотят делать то, что они делают в флоу. Я наверняка что-то упускаю в особенностях ТС.
Ссылка на плейграунд: https://bit.ly/3cj9RgF (сори за битли, не знал что goo.gl умер)

Ситуация 1: createResource() должен возвращать генерик тип, который знает про “запакованный” тип пользовательского кода. В строке 20 объявляется ResourceA, и его первым позиционным типом (см ResourceCache<>) должен быть number (как результат функции query). Почему-то ТС не видит этот тип и оставляет unknown. Возможно что-то особенное нужно сделать с сигнатурой createResource(), но я не уверен что именно

Ситуация 2: useResource() должен проверять соответствие массива зависимостей с сигнатурой соответствующей query функции (в имплементации происходит .apply()). Для сохранения нужного типа этого массива я сохраняю Parameters<Query> в ResourceCache<>. На 27й строке можно увидеть ожидаемую ошибку, потому что передается строка, а ожидается number (как в query на строке 21). Но, я могу передать number вторым параметром ([‘sdf’, 1]) и внезапно ошибка пропадает, хотя их теперь должно быть две. Я возможно ожидаю что-то не то от Parameters<>, возможно есть какой-то аналог который сохраняет позиционирование и размер?
источник

EO

Eugene Obrezkov in Frontend UA
Alexey Raspopov
Нужна помощь с типизацией в тайпскрипте. Обновляю тайпинги для своей либы, упёрся в то, что типы не хотят делать то, что они делают в флоу. Я наверняка что-то упускаю в особенностях ТС.
Ссылка на плейграунд: https://bit.ly/3cj9RgF (сори за битли, не знал что goo.gl умер)

Ситуация 1: createResource() должен возвращать генерик тип, который знает про “запакованный” тип пользовательского кода. В строке 20 объявляется ResourceA, и его первым позиционным типом (см ResourceCache<>) должен быть number (как результат функции query). Почему-то ТС не видит этот тип и оставляет unknown. Возможно что-то особенное нужно сделать с сигнатурой createResource(), но я не уверен что именно

Ситуация 2: useResource() должен проверять соответствие массива зависимостей с сигнатурой соответствующей query функции (в имплементации происходит .apply()). Для сохранения нужного типа этого массива я сохраняю Parameters<Query> в ResourceCache<>. На 27й строке можно увидеть ожидаемую ошибку, потому что передается строка, а ожидается number (как в query на строке 21). Но, я могу передать number вторым параметром ([‘sdf’, 1]) и внезапно ошибка пропадает, хотя их теперь должно быть две. Я возможно ожидаю что-то не то от Parameters<>, возможно есть какой-то аналог который сохраняет позиционирование и размер?
у тебя Data нигде не "зацеплена"
источник

EO

Eugene Obrezkov in Frontend UA
она просто как тип параметр болтается
источник

AV

Anton Verinov in Frontend UA
1. Второй тайпарг может быть переопределён на что-то другое, так что

declare function createResource<Data>(
   { query }: { query: QueryFn<Data> }
): ResourceCache<Data, Parameters<QueryFn<Data>>>;
источник

AR

Alexey Raspopov in Frontend UA
Anton Verinov
1. Второй тайпарг может быть переопределён на что-то другое, так что

declare function createResource<Data>(
   { query }: { query: QueryFn<Data> }
): ResourceCache<Data, Parameters<QueryFn<Data>>>;
Помогло, но потерялись параметры query)
источник

AR

Alexey Raspopov in Frontend UA
Eugene Obrezkov
у тебя Data нигде не "зацеплена"
Видимо не до конца улавливаю что ожидать от extends. Вот как это работает в флоу

declare function createResource<Data, Query: QueryFn<Data>>({
   query: Query;
}): ResourceCache<Data, Arguments<Query>>;
источник

EO

Eugene Obrezkov in Frontend UA
Alexey Raspopov
Видимо не до конца улавливаю что ожидать от extends. Вот как это работает в флоу

declare function createResource<Data, Query: QueryFn<Data>>({
   query: Query;
}): ResourceCache<Data, Arguments<Query>>;
ну extends это больше про ограничения на входной аргумент к типу
источник

AV

Anton Verinov in Frontend UA
Alexey Raspopov
Помогло, но потерялись параметры query)
Не совсем понял. У тебя ж там аргументы ...args: any
источник