#jquery #firefox #firebug #firefox4 #nivo-slider
#jquery #firefox #firebug #firefox4 #nivo-слайдер
Вопрос:
Когда я открываю две вкладки с Nivo Slider в каждой, я заметил, что вкладка firebug net отображает несколько запросов на одно и то же изображение при каждом изменении слайда. Это увеличивает размер (в мб) страницы и использование / выделение памяти для firefox.exe. Через некоторое время мой компьютер стал очень медленным, а выделение памяти в task monitor превысило 1 ГБ.
Как это повторить: 1- Открыть http://nivo.dev7studios.com на 2 вкладках в firefox (протестировано в версиях 3.6 ~ 5.0) 2- Откройте сетевую панель firebug на второй вкладке 3- перезагрузите вторую вкладку
Комментарии:
1. Трудно сказать, чья это ошибка, не понимая, почему Firefox снова выполняет эти запросы вместо использования кэшированной версии. Журнал за developer.mozilla.org/en/HTTP_Logging ответил бы на этот вопрос (по крайней мере, для кого-то, знакомого с внутренними компонентами necko)
Ответ №1:
Я только что протестировал в FF 3.6 — та же проблема.
Посмотрите на файл http://nivo.dev7studios.com/scripts/nivo-slider/jquery.nivo.slider.js : 84
//Set first background
slider.css('background','url("' vars.currentImage.attr('src') '") no-repeat');
Также строки 253, 262, 284 и т.д. Он добавляет фоновое изображение «на лету», поэтому браузер должен запрашивать его снова и снова. К счастью, сервер отвечает заголовком 304, который не изменен.
Ответ таков: NivoSlider.
Комментарии:
1. но это не происходит в Google Chrome и в Firefox при открытии только одной вкладки
2. Действительно… Хорошо, чем я не знаю.
Ответ №2:
Я получаю утечки памяти в FF 4.0.1 при открытии одной вкладки. Chrome (12.0.742.100) тоже, хотя и не такой плохой, как FF.
Похоже, что NivoSlider вызывает эту утечку.
Ответ №3:
Мы тестировали это у меня на работе, и сначала мы увидели, что Firefox повторно загружает изображения, как и говорилось на оригинальном плакате. Но потом мы кое-что поняли — если вы никогда не наведете курсор на изображения с помощью инструмента Firefox / Firebug, он никогда не загрузит изображения заново!
Другими словами, похоже, что это происходит не из-за слайдера. Похоже, это происходит только тогда, когда вы начинаете расследование с использованием Firefox / Firebug.
Так что я не думаю, что это проблема.
Комментарии:
1. но firefox продолжает выделять память для этого
Ответ №4:
У меня такая же проблема с утечками памяти. Похоже, что nivo в конце концов не так уж и хорош.
После некоторых попыток мне удалось значительно снизить нагрузку, по крайней мере, согласно firebug.
Я сделал две вещи:
- поместите display: none для всех изображений слайдера в css — я не думаю, что это действительно много значит, но это не повредит. Я надеялся, что это подавит начальную загрузку.
- в JS используйте $(document).готово вместо $ (window).load- теоретически это должно запустить слайдер до загрузки всех изображений
Проблема все еще не полностью устранена, я получаю какое-то странное поведение. У меня всего 4 изображения. Все они загружаются при запуске. В какой-то момент (я не знаю причину, обычно при первом отображении изображения) 2 изображения загружаются снова (из кэша). После этого все работает нормально. Я оставил его открытым на час, никаких новых загрузок.
Итак, в заключение, с упомянутыми изменениями я получаю 2 дополнительных загрузки. По сравнению с тем, что у меня было раньше (новая загрузка при изменении изображения), это не так уж плохо.
Я все еще не могу найти причину или объяснение такого поведения. Возможно, firefox освобождает часть памяти по пути, поэтому изображения время от времени загружаются снова?