Медленное выполнение скрипта jQuery на странице, размещенной на Google Диске

0

Я создал авторский инструмент для физики JS:

Абсолютно:

https://googledrive.com/host/0B8yu2s4Q9YD8OG00WElPQllYTW8/Home.htm

Инструмент реализован с эффектом "смены цвета" и "мыши" на кнопках изображения.

Код:

$('input#b1').bind('mouseover', function() {
    $('input#b1').attr("src", "images/Begin_hover.png");
});
$('input#b1').bind('mouseout', function() {
    $('input#b1').attr("src", "images/Begin.png");

Это работает отлично на месте. Но на Google Диске это занимает некоторое время.

Каково решение?

GitHub:

https://github.com/MGTHEBOSS/absolutely

Теги:
google-drive-sdk

1 ответ

0

Это не столько проблема с вашим кодом, сколько ваше кэширование изображения (или его отсутствие) -

cache-control: private, max-age = 20

дата: вс, 05 янв 2014 09:34:29 GMT

Истекает: Вс, 05 Янв. 2014 09:34:29 GMT

Последнее изменение: Сб, 04 Янв. 2014 10:16:26 GMT

Расположение:/хост/0B8yu2s4Q9YD8OG00WElPQllYTW8/изображения/

Сервер: GSE

статус: 304 Не изменено

Атрибут max-age находится в секундах, а значение expires указывает браузеру не кэшировать его вообще.

В результате "условное GET" делается для каждого мыши и мыши в браузере, чтобы увидеть, изменилось ли изображение. Это занимает 301 мс для меня по разумному фиксированному сетевому соединению - латентность будет значительно выше в мобильных сетях.

Установите долгосрочное истечение (абсолютный минимум в час), чтобы избежать повторной выборки изображения.

Какую версию jQuery вы используете? .on() был предпочтительным методом привязки событий с jQuery версии 1.7 - вы также могли бы сделать ваш код незначительно более эффективным, сохранив элемент DOM в качестве переменной, чтобы избежать повторного поиска.

var $beginButton = $('input#b1');

$beginButton.on('mouseover', function() {
    $(this).attr("src", "images/Begin_hover.png");
});
$beginButton.on('mouseout', function() {
    $(this).attr("src", "images/Begin.png");
  • 0
    Как установить это? Страница размещена на Google Диске. А что касается версии jQuery, источник страницы ясно показывает, что версия 1.9.0.
  • 0
    Да, но вы не предоставили версию здесь, и я уже сформулировал эту часть ответа в качестве комментария, прежде чем зайти на вашу страницу. С точки зрения настройки параметров expires и control-cache, я не знаю - я никогда не отвечал на вопросы, связанные с настройкой и настройкой Google Drive, и не подходит для StackOverflow, который существует для решения конкретных проблем, связанных с программированием. Я быстро отправил инструкции в Google, но ничего не увидел в разумные сроки. Я предлагаю вам проверить их документацию или обратиться в службу поддержки, если у вас все еще есть проблемы.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню