Search
Write a publication
Pull to refresh
14
0
Send message

Я, конечно, извиняюсь, но заголовок статьи не соответствует содержанию. Предполагал, что будет сравнение нескольких библиотек (например, vanilla extract, treat), а тут взяли Stitches и всё.

На страницах пагинации рекомендуем разместить тег Canonical в разделе <head></head>, указывающий адрес страницы пагинации:

<link rel="canonical" href="https://www.site/category/page-2/">

Я правильно понимаю, что в таком случае сортировка элементов пагинации должна работать так, чтобы на первых страницах были самые старые товары (пример магазина), а на последних - самые новые? Иначе, если на странице `page-1` будут отображаться самые новые товары, то со временем проиндексированный контент не будет соответствовать текущему.

С помощью этого сервиса можно клонировать кодовую базу на нескольких системах – везде будет одинаковый результат.

Чтобы был действительно одинаковый результат, нужно использовать package-lock.json:

COPY package.json package-lock.json
RUN npm ci

Аудит: настройте подходящий размер изображений. Решение: использовать формат изображений WebP.

Насколько помню, данный аудит означает размер в пикселях, а не килобайтах, чтобы, например, в аватарку размером 80x80 не пихали картинку 2000x2000.

Но смешно то, что если убрать эти строки, на странице будет отображаться ошибка о подключении к React:

Про какие строки говорите? Про эти?

/** @jsx h */
import { h } from "preact";

Видимо, по умолчанию прагма JSX настроена на react и поэтому jsx-элементы будут превращаться в React.createElement.

Если вы используете vue-cli вам потребуется в vue.config.ts проставить флаг runtimeCompiler: true

Не лучше было бы использовать расширение синтаксиса JSX/TSX и render-функции, чтобы они компилировались при сборке, а не в runtime браузера пользователя?

Позанудствую.

if (users.length === 0) {
  return Promise.resolve([null, notFoundError]);
}

Нулевая длина списка вряд ли должна описываться ошибкой notFoundError. Ведь коллекция `users` есть. Если бы пользователь пошёл по пути `/users/1/`, а пользователя c `id = 1` нет, то тогда можно отдать notFoundError.

Из async-функции разве не достаточно возвращать просто массив `[data, error]` без оборачивания в Promise.resolve ?

Код - картинками, да ещё и serif-шрифтом...

Если работаете с <select multiple> попробуйте улучшить взаимодействие с ним.

This post is not about <select multiple>

Service Worker может засыпать после некоторого времени бездействия. Как-то решали такую проблему?

"Вёрстка в 2022". Код вставляется картинками, которые на экранах с высокой плотностью пикселей почти невозможно разглядеть.

У ноды и у питона есть из коробки

А что там есть у Node.js из коробки?

 по сути вебсокет это подкастрированный и видоизмененный http

Разве? HTTP используется только при инициализации (отправка заголовков `Connection: Upgrade` и `Upgrade: websocket`), а затем делается upgrade соединения.

argon2 — утилита для хеширования паролей

Почему не использовали встроенный scrypt?

"не переводить" - только сейчас заметил

В русскоязычной среде нет устоявшегося аналога английского service worker. 

Подобные термины лучше переводить. Оставлять англоязычный вариант или "сервис-воркер".

любой веб-сервер незаметно для вас всегда ищет favicon.ico в корне проекта и пытается её подключить к сайту.

Только сервер ничего не ищет. Это различные веб-клиенты (в том числе и браузеры) по необходимости делают запрос на адрес '/favicon.ico'.

Как следствие, не нужно вслепую следовать правилу:

Фавиконку в формате ico обязательно нужно класть в корень проекта

Нужно, чтобы веб-сервер отдавал иконку по адресу '/favicon.ico'

В JavaScript классы существуют. Просто они не являются эквивалентами для классов из других языков. К тому же es6-классы - "не просто синтаксический сахар"(перевод).

 Но многопоточность всё же не заканчивается на параллельности. Помимо неё нам нужна общая память между потоками,

И SharedArrayBuffer не подходит?

Information

Rating
Does not participate
Registered
Activity