Задать вопрос
  • Как закэшировать js скрипт, подключенный через js?

    Aetae
    @Aetae Куратор тега JavaScript
    dicem, не скрипт, а браузер, но да, скорее всего возьмёт: что произойдёт на самом деле - зависит от того какие заголовки касающиеся каша посылал сервер вместе с файлом.
  • Почему при указании пути, картинка не выводиться в js?

    Aetae
    @Aetae Куратор тега JavaScript
    koh777, про "просто с компа" вообще забудь, там столько ограничений, причём недокументированных, что даже пытаться разбираться нет никакого смысла. Даже проверяя локально - запускай локальный же сервак. Какой-нить alive-server или встроенный в IDE.
  • Как сделать более плавную svg анимацию?

    Aetae
    @Aetae
    А по поводу понимания, то, надо полагать, ты вообще не понимаешь что делает код, просто скопировал его откуда-то.
    По сути же код просто берёт градиент и анимирует его слева направо. Просто обычный градиент. Он никаким образом не стелится вдоль линии и не учитывает её форму. Представить, что ты берёшь листок бумаги, врезаешь в нём дырку в виде этой своей изогнутой линии и под эти листком двигаешь слева-направо картинку градиента. Примерно так оно тут и выглядит.
  • Как вывести изображения в картах через класс?

    Aetae
    @Aetae Куратор тега JavaScript
    То что бросается в глаза:
    1. action.call(this, card) - при передаче теряется привязка к this.
    2. card.textContent = this.cardNumber; - всегда будет null, т.к. ты переопределил сеттер но не геттер.

    В целом что-то ты делаешь очень не так.
  • Как можно ограничить скорость запроса в js?

    Aetae
    @Aetae Куратор тега JavaScript
    Роман, как-то так, код пошлёт строку '123' с задержкой по секунде перед каждым символом:
    const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
    
    const chunksToSend = ['1', '2', '3'];
    const stream = new ReadableStream({
      async start(controller) {
        for(const chunk of chunksToSend) {
          await delay(1000);
          controller.enqueue(chunk);
        }
        controller.close();
      }
    });
    
    fetch('https://postman-echo.com/post', {
      method: 'POST',
      body: stream.pipeThrough(new TextEncoderStream()),
      headers: {'Content-Type': 'text/plain'},
      duplex: 'half',
    })
      .then(response => response.text())
      .then(text => console.log('Response:', text));

    Каждый чанк должен быть массивом байт в Uint8Array, потому тут используется .pipeThrough(new TextEncoderStream()) который собственно и делает этот массив из строки, но ты можешь в ручную чанки из Uint8Array слать, если у тебя не строковые данные.

    *Важное уточнение: вся эта радость будет работать только для серверов поддерживающих http2. Почему? Потому что кодерам хрома было лень пилить поддержку под "старьё", ведь всё равно новые фичи будут юзать для новых проектов, ведь так?..
  • Как можно ограничить скорость запроса в js?

    Aetae
    @Aetae Куратор тега JavaScript
    Роман, нет, чатгпт написал чтение, ане отправку. Это блидиг эйдж технологий так то, если кто это и делал то 1,5 ананомусов из разработчиков хрома, так что гпт не на чем учиться было.:)
  • Почему низкая скорость скачивания?

    Aetae
    @Aetae
    justnick, ну попробуй убрать "определять автоматически". Также попробуй через другой браузер затестить(чем чёрт не шутит)...
  • Почему низкая скорость скачивания?

    Aetae
    @Aetae
    justnick, а прокси случайно на втором компе в системе общее не настроено?

    Собсно такую картину я могу предположить только в одном случае - если трафик "в домашнем регионе" идёт по одному маршруту, а в другие места по другому.
    Это может быть из-за селективного VPN, селективных маршрутов, селективного прокси. Первые два вроде проверили и вроде не виляют. Прокси проверишь сейчас.
    Дальше идут всякие теоретически возможные, но чем дальше тем менее вероятные варианты:
    Что на роутере с привязкой на конкретный mac адрес конкретной сетевухи настроены маршруты через VPN(внутри роутера) или ещё куда завёрнуты.
    Что винда делает какую-то магию в зависимости от направления трафика.
    Что у провайдера настроена какая-то приоритизации трафика, которая как-то по разному действует для разных сетевых профилей сетевух.
    Что сама сетевуха как-то по разному обрабатывает разные направление(вообще бред).
  • Как закэшировать js скрипт, подключенный через js?

    Aetae
    @Aetae Куратор тега JavaScript
    К загруженным таким образом скриптам применяются стандартные правила кэширования браузера. Что конкретно тебе нужно?
  • Почему vite сборщик при сборке не подключает css файл, хотя создает его в папке?

    Aetae
    @Aetae Куратор тега TypeScript
    Дмитрий Путилов, да, как уже сказано выше - стили либы и должны лежать отдельно, чтобы пользователь мог подключать их так, как ему удобно.
    Особенно это касается scss и прочих препроцессоров - если вы их используете, то пользователю желательно предлагать на подключение сразу оба варианта: и собранный css и исходный scss.
  • Почему низкая скорость скачивания?

    Aetae
    @Aetae
    justnick, ну вон на втором какой-то впн-клиент имеет больший приоритет, хотя по маршрутам вроде и норм всё...
    Поотключай всё кроме собственно Ethernet подключения в Центре управления сетями\Изменения параметров адаптера. Также в этом подключении попробуй отключить\включить в свойствах ipv6 на обоих компах и посмотреть разницу...
  • Почему низкая скорость скачивания?

    Aetae
    @Aetae
    justnick, а ip при перемене кабелей у компов меняются? Что кажет route print на обоих компах?
    Пока выглядит как мистика.:)
  • Почему при указании пути, картинка не выводиться в js?

    Aetae
    @Aetae Куратор тега JavaScript
    koh777, ещё раз: если и картинка и слайдер находятся на одном домене - все будет рабортать, если нет - надо дополнительно морочиться.
    Да, "этот чувак" заливает со своего сервера, ну так и слайдер у него на том же своём сервере - atuin.ru.

    Ты же экспериментируешь на codepen, соответственно слайдер там на домене codepen, а картинку ты берёшь откуда-то из другого места.

    Картинка же с imgur работает потому, что imgur как раз заморочился с дополнительными разрешениями: 6519aa41c3e21592447345.png

    Первый раз сталкиваюсь с такой проблемой.

    Я объяснил почему: этот слайдер работает с картинкой на низком уровне, т.е. имея доступ побайтово к самой картинке, а не только показывая её средствами браузера. Почему это важно? Потому что злоумышленник может подключить например картинку с какой-то твой личной информацией с сайта банка. Если он её просто покажет - ничего страшного, а вот если он её прочитает и вытащит оттуда информацию - это уже угроза.
  • Как сделать такую кнопку?

    Aetae
    @Aetae
    Бай Кабиров, тебе ответили свойства какие нужны - дальше сам

    Разве что если лень и фон однородный можно забить на всю эту новомодную хрень и по-дедовски сделать png нужной формы и закрывать им кусок картинки создавая иллюзию выреза.
    Правда если когда-то потом захотят поменять фон - будут сильно на тебя ругаться, но это уже будут не твои проблемы.:)
  • VUE 3 Router не видит GET параметры?

    Aetae
    @Aetae Куратор тега Vue.js
    Tereverda, всё работает:
  • VUE 3 Router не видит GET параметры?

    Aetae
    @Aetae Куратор тега Vue.js
    Tereverda, тут просто для примера. Первый пришедший в голову вариант, без лишних изменений исходного кода. Ты можешь положить это в mounted прям так и наблюдать результат.

    А в общем - в некоторых случаях удобно начинать watch не сразу ли делать unwatch.
  • Как во Vue Router указать не обязательную часть url?

    Aetae
    @Aetae Куратор тега Vue.js
    Чем тебе классика вида /catalog/mebel?page-2 не угодила?..
  • Почему проект, собранный через vite не позволяет открыть сборку локлаьно через index.html?

    Aetae
    @Aetae Куратор тега JavaScript
    Narts, верно то, что оно на уровне браузера, а уж как оно там внутре себя ведёт можно только в сорцах увидеть. Может быть и так, что там тупо проверка вида: "type module? локально? или нафиг.".

    Ограничения для локальных файлов не продиктованы никакой спецификацией или очевидной логикой, они продиктованы особенностями конкретных реализаций конкретных браузеров и желаниями левой пятки произвольных разработчиков. Именно потому я и рекомендую забыть о локальных файлах.
  • Как должна выглядеть структура json, которую можно выводить с конц, можно обращаться по номеру и удалять?

    Aetae
    @Aetae Куратор тега JavaScript
    accountnujen, можешь. А можешь и вообще лапшу писать, ктож те запрещеят. Вопрос распределения зон ответственности, компоновки кода, и прочих всяких заумных слов. Если интересно - почитаешь какой-нить учебник по ООП и нахрена козе баян, не интересно - не почитаешь. Нет смысла тут очевидные вещи объяснять, коли оные пока не очевидны.:)
  • Как должна выглядеть структура json, которую можно выводить с конц, можно обращаться по номеру и удалять?

    Aetae
    @Aetae Куратор тега JavaScript
    В смысле как? Как обычно:
    const articleDB = new DB(json);
    
    console.log(articleDB.get(1));
    articleDB.delete(1);
    
    for(const article of articleDB.byTagIterator('oracle')) {
      console.log(article)
    }
    
    saveToFile(articleDB.toJSON());


    А уж насколько оптимальны будут эти действия - это зависит исключительно от внутренней реализации, которую ты сможешь десять раз переписать - начиная с не оптимального но рабочего кода, заканчивая твоим идеалом, при этом никак не влияя на уже рабочий код. В этом суть классов.