Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Плагин чекбокса на JS(Тормоз при смене картинки) (https://javascript.ru/forum/xhtml-html-css/26607-plagin-chekboksa-na-js-tormoz-pri-smene-kartinki.html)

Mike_Kharkov 14.03.2012 19:23

Плагин чекбокса на JS(Тормоз при смене картинки)
 
Здравствуйте.
Есть такая страничка:
http://yamaradg.narod2.ru/history/Yo...vel/index.html
На ней имеется один единственный чекбокс:
http://yamaradg.narod2.ru/history/checkbox.jpg
Когда файлы грузятся с винта то проблем не имеется - но при загрузке на хостинг - в IE происходит 'Тормоз' при смене картинок!?(во время клика)
Тоесть - сначала исчезает одна, затем пустое пространство и уже по истечении 0.5 секунд происходит появления другого бэкграунда.
Вопрос:
Почему это происходит и как это можно устранить?
P.S. Сам js код выглядит следующим образом:
// Dean Edwards/Matthias Miller/John Resig

function init() {
    // выходим, если функция уже выполнялась
    if (arguments.callee.done) return;

    // устанавливаем флаг, чтобы функция не исполнялась дважды
    arguments.callee.done = true;

    // что-нибудь делаем
};

/* для Mozilla/Firefox/Opera 9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}

/* для Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"javascript:void(0)\"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
    if (this.readyState == "complete") {
	init(); // вызываем обработчик для onload
    }
};
/*@end @*/

/* для Safari */
if (/WebKit/i.test(navigator.userAgent)) { // условие для Safari
    var _timer = setInterval(function() {
	if (/loaded|complete/.test(document.readyState)) {
	    clearInterval(_timer);
	    init(); // вызываем обработчик для onload
	}
    }, 10);
}

/* для остальных браузеров */
window.onload = init;

window.onload=function() {
        myCheckbox.checked = true;
};
var myCheckbox = document.getElementById('myCheckbox');
var virtualCheckbox = document.getElementById('virtual_checkbox');

virtualCheckbox.onclick = function(){
        if (myCheckbox.checked == true) {
        	myCheckbox.checked = false;
        	virtualCheckbox.style.backgroundImage='url(images/checkoff.png)';
        }
        else if (myCheckbox.checked == false) {
        	myCheckbox.checked = true;
        	virtualCheckbox.style.backgroundImage='url(images/checked.png)';
        }
};

myCheckbox.onclick = function(){
        if (myCheckbox.checked == true) {
        	virtualCheckbox.style.backgroundImage='url(images/checked.png)';
        }
        else if (myCheckbox.checked == false) {
        	virtualCheckbox.style.backgroundImage='url(images/checkoff.png)';
        }
};

Заранее благодарен за ответ...

Aetae 14.03.2012 19:52

Лень смотреть код, но скорее всего тормоз из-за того что вторая картинка грузится с сервака, что занимает определённое время. Все нормальные люди в наше время для мелких элеменов используют спрайты.


Часовой пояс GMT +3, время: 12:27.