Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как ускорить загрузку гифки 22Кб со своего же сервера (используется JS)?

    @xtreme
    Снимаю порчу по SSH :)
    Если я все правильно понял - львиная доля времени уходит на установление SSL-соединения.
    Сам при таких ситуациях первым делом полез бы в настройки веб-сервера, чтобы посмотреть, что там не так с секцией с параметрами SSL (рекомендаций по ускорению SSL в nginx в интернетах - вагон с тележкой).
    Вторым делом - убедился бы, что файлы gif отдаются с помощью nginx, а не проксируются на апач в бэкенде.
    location /img/ {
      root /var/www/...... ;
      expires 2y;
    }


    Либо, если, кровь из носа, надо обрабатывать gif апачем - ну хотя бы proxy_cache туда впилить, чтобы каждый раз к нему не лазить.
    Судя по заголовкам сервера - у вас nginx стоит фронтендом, а судя по таймингу - либо запросы на gif действительно уходят на apache, либо у вас ооочень медленный (либо загруженный) диск.
    Ответ написан
  • Периодически не подгружаются картинки на сайте, почему?

    @xtreme
    Снимаю порчу по SSH :)
    Pending - это ожидание. Если у курильщика Chrome - тогда он ограничен 6 одновременными соединениями к одному ресурсу. Ты установил коннект, получил страницу и браузер начинает подгружать статику. И судя по браузеру "некурильщика" - у тебя там мелкие картинки, и на каждый файл надо установить соединение. С ограничением в 6 соединений, если у тебя сверху заливается нечто тормозящее - остальные будут курить до освобождения очереди.

    Включаю телепатический шлем...

    Как один из вариантов - объединить мелкие картинки в спрайты и грузить их одним коннектом, отображая с помощью CSS нужные участки в нужных местах. (Google PageSpeed тебе то же самое подскажет)
    Второй, как полумера - использовать кеш браузеров клиента, чтобы не грузить картинки каждый раз с сервера. Но в первый раз все равно придется загрузить их со страницы в любом случае.
    Далее, судя по всему у тебя либо подрезана скорость на доступ к веб-серверу, либо сервер откровенно тормозит. Картинку размером в 80КБ грузить секунду - это долго.
    Рискну предположить, что у тебя в качестве веб-сервера стоит апач. В таком случае рекомендую увести его например на 127.0.0.1:80, а перед ним на этом же сервере на внешний интерфейс воткнуть nginx с простым конфигом:
    (Естественно, путь до проекта и внешний IP-адрес подставить свои)
    server {
      listen 192.168.0.1:80;
      server_name my-super-puper-project;
      
      location ~ ^.+\.(jpg|png) {
        root /home/www/your-project-name;
        expires 1d;
      }
      location / {
        proxy_pass http://127.0.0.1:80;
      }
    }


    В этом случае картинки (jpg|png) будет отдавать легковесный nginx без участия apache, что значительно разгрузит твой сервер, а на apache будет уходить все остальное (в т.ч. и ЧПУ-ссылки). Если у тебя css и js также отдаются прямо с диска, а не генерятся на каждый запрос динамически, как сумасшедшие - можно их включить в конфиг к картинкам.
    Если с сетью порядок - браузер станет получать статические файлы гораздо быстрее, а значит время Pending тоже уменьшится, что благоприятно скажется на быстродействии.
    Ответ написан
    2 комментария