Issue 133: Add lazy loading for images support
This commit is contained in:
46
indefero/www/media/idf/js/logo.cache.js
Normal file
46
indefero/www/media/idf/js/logo.cache.js
Normal file
@@ -0,0 +1,46 @@
|
||||
$(function () {
|
||||
var logoCache = {};
|
||||
var waiting = 0;
|
||||
function logoUpdate() {
|
||||
if (waiting == 0) {
|
||||
$(".logo").each(function () {
|
||||
var self = $(this);
|
||||
var logo = $(this).data("logo");
|
||||
if (logo == "") {
|
||||
logo = undefined;
|
||||
}
|
||||
self.attr("src", logoCache[logo]);
|
||||
});
|
||||
} else {
|
||||
waiting -= 1;
|
||||
}
|
||||
}
|
||||
$(".logo").each(function () {
|
||||
var logoSrc = $(this).data("src");
|
||||
var logo = $(this).data("logo");
|
||||
var self = $(this);
|
||||
if (!logoSrc) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (logo == "") {
|
||||
logo = undefined;
|
||||
}
|
||||
|
||||
if (!(logo in logoCache)) {
|
||||
logoCache[logo] = logoSrc;
|
||||
}
|
||||
});
|
||||
|
||||
waiting = Object.keys(logoCache).length - 1;
|
||||
$.each(logoCache, function (index, element) {
|
||||
$.ajax({
|
||||
url: logoCache[index],
|
||||
success: function(data) {
|
||||
logoCache[index] = data;
|
||||
logoUpdate();
|
||||
},
|
||||
async: true
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user