Подгружаем картинки с Prototype
Все читали статью Подгружаем картинки с jQuery? Довольно таки забавный скрипт. Захотел вставить его на свою страницу и вспомнил, что на ней совсем не jQuery, а Prototype. Что же делать? А просто взять и переписать скрипт для Prototype.
Работает новый скрипт точно также. Парсит CSS стили на странице, достаёт из них все картинки и подгружает их. Единственное что я не стал делать, это систему оповещения о статусе загрузки. Мне это не надо, но сделать это не сложно. Сравните мой код с плагином jQuery и будет ясно куда этот вставить.
-
var AjaxRussia = {};
-
AjaxRussia.ImagePreloader = Class.create({
-
-
initialize: function(){
-
-
$A(document.styleSheets).each(function(sheet){
-
var cssPile = '';
-
var csshref = (sheet.href) ? sheet.href : 'window.location.href';
-
var baseURLarr = csshref.split('/');
-
baseURLarr.pop();
-
var baseURL = baseURLarr.join('/');
-
if (!baseURL.blank())
-
baseURL += '/';
-
if (sheet.cssRules) {
-
var thisSheetRules = sheet.cssRules;
-
$A(thisSheetRules).each(function(rule){
-
cssPile += rule.cssText;
-
});
-
}
-
else {
-
cssPile += sheet.cssText;
-
}
-
-
var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g);
-
if (imgUrls != null && imgUrls.length> 0 && imgUrls != '') {
-
$A(imgUrls).each(function(url){
-
var image = new Image();
-
image.src = (url.charAt(0) == '/' || url.match('http://')) ? url : baseURL + url;
-
});
-
}
-
});
-
}
-
});
Использовать скрипт просто:
-
new AjaxRussia.ImagePreloader();
Только не надо этот код просто так писать на страницу. Иначе при каждой загрузке страницы CSS будет заново парситься. Я наверное буду вызывать AjaxRussia.ImagePreloader() только если у пользователя нету определённого куки. Ну а после работы AjaxRussia.ImagePreloader() соответственно эту куки сажать.
8 Comments so far
Leave a reply
1 - первый, гы
2 - плиз, пиши почаще
Хотя бы какие то мелкие заметки или около того
Читаю тока тя, ты у мну в Яндекс лентах, и вот каждый день смотрю когда новый пост появиться, а его месяцами нету блин 
Буду стараться
хых…а если в браузере отключены картинки, скажем для экономии трафа, то он все равно их загрузит?
Не пробовал
А что это дает? Выигрыш в скорости загрузки или что ?
посмотри прошлую статью про плагин jQuery, там написано зачем это нужно
Спасибо Вам за то, что Вы продолжаете писатЬ!
Отличный пост, то что нужно, покрайней мере для меня)