Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Реализация предварительной загрузки ролловеров с помощью JavaScript (http://forum.oszone.net/showthread.php?t=72995)

Vit_Home 16-10-2006 10:16 498395

Реализация предварительной загрузки ролловеров с помощью JavaScript
 
Купил в онлайне книгу, про ускорение работы сайта :) , переписал от туда скрипт, вставил в шапку линк на него,
в тег боди вставил вызов функции и... не пашет. :( Помогите пожалуйста, очень нужно. Заранее большое спасибо!

dcity.by.ru Мой пример
Листинг функции для загрузки изображений (отдельный файл preload.js)
HTML код:

function preloadImages () {
 args = preloadImages.arguments;
 n = ags.length;
 imgArray = new Array (n) ;
 for (i=0; i<n; i++) {
  document.imgArray[i] = new Image;
  document.imgArray[i].src = args[i];
 }
}

Тег для вызова функции загрузки изображений
HTML код:

<script type='text/javascript' src='preload.js'></script>
И сам вызов функции из тега боди
HTML код:

<BODY onLoad="preloadImages('images/rollover/Articles-Download_sel.gif', 'images/rollover/Articles-overDownloadsel.gif', 'images/rollover/Articles-overHomesel.gif', 'images/rollover/Articles-overProjectsel.gif', 'images/rollover/Articles-sel.gif', 'images/rollover/Download-over.gif', 'images/rollover/Download-overArticlessel.gif', 'images/rollover/Download-overHomesel.gif', 'images/rollover/Download-overProjectsel.gif', 'images/rollover/Download-sel.gif', 'images/rollover/Home-over.gif', 'images/rollover/Home-overArticlessel.gif', 'images/rollover/Home-overDownloadsel.gif', 'images/rollover/Home-overProjectsel.gif', 'images/rollover/Home-Project_sel.gif', 'images/rollover/Home-sel.gif', 'images/rollover/Project-Articles_sel.gif', 'images/rollover/Project-over.gif', 'images/rollover/Project-overArticlessel.gif', 'images/rollover/Project-overDownloadsel.gif', 'images/rollover/Project-overHomesel.gif', 'images/rollover/Project-sel.gif');">

mar 16-10-2006 10:33 498404

Vit_Home
у Вас в вызове половина кавычек не закрыта и ; после ) нет. (Последнее менее фтально). А вообще жуть - столько в body запихивать :)

Vit_Home 17-10-2006 00:11 498755

Спасибо за сообщение! Сейчас допишу вторую половину ковычек. Про жуть тоже подумаю.

Vit_Home 20-10-2006 03:10 500332

Может кто знает почему скрипт не пашет?

Ошибка: document.imgArray has no properties
Источник: preload.js
Строка 6

function preloadImages() {
args = preloadImages.arguments;
n = args.length;
imgArrey = new Array(n);
for (i=0; i<n; i++) {
document.imgArray[i] = new Image;
document.imgArray[i].src = args[i];
}
}

Prisoner 20-10-2006 11:16 500449

Vit_Home, будьте внимательнее, у вас ошибка в "imgArrey = new Array(n);". Точнее опечатка.

Vit_Home 21-10-2006 02:22 500847

извиняюсь, в упор не вижу...
imgArrey = new Array(n);
и где здесь ошибка?

mar 21-10-2006 02:32 500858

Vit_Home
проверяйте по буковкам =)
imgArray = new Array(n);
тк
document.imgArray[i] = new Image;

Vit_Home 21-10-2006 23:47 501150

Исправил ошибки в скрипте!

[i]function preloadImages() {
args = preloadImages.arguments;
n = args.length;
imgArray = new Array(n);
for (i=0; i<n; i++) {
document.imgArray[i] = new Image;
document.imgArray[i].src = args;
}
}


Но в браузере опять ошибка, не грузит он картинки в кэш!

Ошибка: document.imgArray has no properties
Источник: file:///D:/Temp/work/site/dcity.by.ru/preload.js
Строка: 6

vadimiron 22-10-2006 00:52 501172

А если без document , то есть просто imgArray[i] попробывать??
И какой браузер??

Prisoner 22-10-2006 06:57 501197

Vit_Home
Откуда Вы это все берете, если не секрет? Если из книги, ты срочно ее выбросьте, это плохая книга.

Код:

function preloadImages() {
 var args = preloadImages.arguments;
 var n = args.length;
 var imgArray = new Array(n);
 for (var i=0; i<n; i++) {
  imgArray[i] = new Image();
  imgArray[i].src = args[i];
  }
 }

1) var - обязательны, если Вы не хотите засорять контекст вызова функции: переменные без var становятся глобальными (грубо говоря добавляются в window).
2) () - тоже маленький нюанс.

Vit_Home 23-10-2006 02:58 501414

Prisoner
Нормальная книга!
Название: "Ускорение работы сайта", Автор: Влад Мержевич.
Книга про ускорение, т.е. про повышение скорости загрузки сайта,
а не про оптимизацию кода JavaScript.

Я её купил - выкидывать не собираюсь. Свои книги выкидывайте!

Vit_Home 23-10-2006 03:38 501416

Без document ошибка не появляется! :)

Код:

function preloadImages() {
 var args = preloadImages.arguments;
 var n = args.length;
 var imgArray = new Array(n);
 for (var i=0; i<n; i++) {
  imgArray[i] = new Image();
  imgArray[i].src = args[i];
  }
 }

Как проверить работу скрипта?

Перекинул обновлённый скрипт (preload.js) на сервер, зашёл (FireFox'ом v. 2.0b2 и Explorer'ом v. 6) на Dcity.by.ru
и ни чего в фоне не качается! :(

Prisoner 23-10-2006 18:14 501689

Цитата:

Книга про ускорение, т.е. про повышение скорости загрузки сайта,
а не про оптимизацию кода JavaScript.
Какое уж тут ускорение, коли код просто ошибочен? Посему вывод, если код из книги, то книга - плохая. Не в оптимизации дело, а в некомпетентности.

Цитата:

Перекинул обновлённый скрипт (preload.js) на сервер, зашёл (FireFox'ом v. 2.0b2 и Explorer'ом v. 6) на Dcity.by.ru
и ни чего в фоне не качается!
Что значит в фоне? Указанные (зачем, кстати указываете в качестве параметров preloadImages() изображения уже фигурирующие в коде страницы? Они и так загрузились уже.) изображения начнут загружаться после загрузки кода всего документа. Но только в том случае, если они уже не в кеше броузера. В любом случае, заметить что-то на глаз будет трудно. Попробуйте почистить кеш, зайти наглавную страницу, дождаться прекращения активности броузером и, не наводя ни на одно ролеверное изображение, поглядеть логи обращений к серверу на стороне хостера. Если обращения к заменяемым при наведении картинкам имееют место быть, то скрипт работает, нет - работать следует Вам... над испровлениями.


Время: 05:17.

Время: 05:17.
© OSzone.net 2001-