Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][Mootools]Skrypt zjada całego procka
Forum PHP.pl > Forum > Przedszkole
Misiur66
Cześć.

Na stronie http://immortal-fighters.pl/, na dole mają się znajdować 3 przewijarki. Póki co zrobiłem tylko jedną, ale każdy kto wejdzie ma od razu zużycie procesora bliskie 100%, oraz zacinanie całkowite. Robiłem już ze 3 zmiany, żeby odciążyć JS, a wszystko robić przez PHP. Teraz skrypt wygląda tak:

Kod
<script type="text/javascript">
    window.addEvent('load', function(){
        var total = 0;
        $$('#leftCont0 .contElement').each(function(el){
            var img = new Asset.image(el.getFirst('a').getFirst('img').get('src'));
            total += img.height;
        });
        
        $$('.leftCont').each(function(el){
            var h = parseInt(el.get('id').substr(8));
            el.setStyle('top', h * total);
        });
        move.periodical(100, null, total);
    });
    function move(num)
    {
        $$('.leftCont').each(function(el){
            var act = el.getStyle('top');
            var n = parseInt(act)+1;
            el.setStyle('top', n+"px");
            if(parseInt(el.getStyle('top')) > 400)
            {
                el.setStyle('top', '-'+num+'px');
            }
        });
    }
    </script>


Nawet gdyby to było w czystym JS, to b nic nie zmieniło. Robiłem to samo we flashu, i też zabijało procesor. Co jest? Czemu tak się dzieje?

Teraz w skrypcie zmieniłem okres wywoływania z 10 milisekund, na 100.
Przecież skrypt nie jest jakiś rozbudowany. Ma tylko zmieniać pozycję top i tyle. Czemu zabija? Pomocy.
outsider
Mi Opera zuzywa 0-2% smile.gif

Cytat
(...)każdy kto wejdzie...


czy aby napewno ?

P.S. Niezle Prima Aprilis php.pl biggrin.gif
Misiur66
Ale jeżdżą elementy? Przejechałeś na dół strony?

Teraz już gra cała orkiestra (no, 2/3 orkiestry). U mnie skacze i się zacina, ale mam popsutą kartę graficzną, może dlatego. Użycie procesora 54%. A jak u was?

Nowy kod:

Kod
window.addEvent('load', function(){
        var totall = 0;
        var totalr = 0;
        $$('#leftCont0 .contElement').each(function(el){
            var img = new Asset.image(el.getFirst('a').getFirst('img').get('src'));
            totall += img.height;
        });
        $$('#rightCont0 .contElement').each(function(el){
            var img = new Asset.image(el.getFirst('a').getFirst('img').get('src'));
            totalr += img.height;
        });
        
        $$('.leftCont').each(function(el){
            var h = parseInt(el.get('id').substr(8));
            el.setStyle('top', h * totall);
        });
        $$('.rightCont').each(function(el){
            var h = parseInt(el.get('id').substr(9));
            el.setStyle('top', h * totalr);
        });
        var total = new Array(totall, totalr);
        move.periodical(30, null, total);
    });
    function move(num, num2)
    {
        $$('.leftCont').each(function(el){
            var act = el.getStyle('top');
            var n = parseInt(act)+1;
            el.setStyle('top', n+"px");
            if(parseInt(el.getStyle('top')) > 400)
            {
                el.setStyle('top', '-'+num+'px');
            }
        });
        $$('.rightCont').each(function(el){
            var act = el.getStyle('top');
            var n = parseInt(act)+1;
            el.setStyle('top', n+"px");
            if(parseInt(el.getStyle('top')) > 400)
            {
                el.setStyle('top', '-'+num2+'px');
            }
        });
    }
outsider
Wszysto dziala, "jeździ" smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.