JQueryの色変更スクリプトの最適化

クリストバオフ

以下のこのコードをさらに最適化できますか?現在書かれているように、リソースを使いすぎているように感じます(私のJSテストの知識はほとんどありません...)。ヒントや書き直しを歓迎します。

    jQuery(document).ready(function($) {

$(document).ready(function() {setInterval(function () {spectrum()},5000); });

 function spectrum(){
    var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';
    $('.front-panel-heading').animate( { backgroundColor: hue },7000);
    $('#content h2 > span').animate( {color:hue}, 7000);
    $('#colophon > div > span').animate( {color:hue}, 7000);
 };
});

注:スクリプトは私の個人的なウェブサイト(apleasantview.com)で公開されています。私はこれをしばらく使用していて、今日は少しクリーンアップし、ここの3番目の回答で提案されているようにcssに「transition」を追加しました。スムーズに色が変わる背景に透明度を適用する方法

事前にThx-クリス。

//回答に続くコードアップデート1https://stackoverflow.com/a/24079418/2947983

jQuery(document).ready(function($) {

setInterval(function () {spectrum()},5000);

function spectrum(){
    var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';

    $('div#front-panel-bkgr').animate( {backgroundColor:hue}, 7000);
    $('span#clr-swtch').animate( {color:hue}, 7000);

 };

});

//回答に続くコードアップデート2https://stackoverflow.com/a/24121309/2947983

jQuery(document).ready(function ($) {

    setInterval(function () {
        spectrum()
    }, 7000);

    var frontPanel = $('div#front-panel-bkgr'),
        clrSwitch = $('span#clr-swtch'),
        timer = 7000;
        spectrum();

    function spectrum() {
        var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';
        frontPanel.animate({backgroundColor: hue}, timer);
        clrSwitch.animate({color: hue}, timer);
    };
});
リチャードパーナビー-キング

DOMルックアップの数を減らす

このコードを実行するたびに、同じdom要素を検索しています。関数の外部の変数にjQueryオブジェクトを格納して、CPUセージを向上させることができます。

jQuery(document).ready(function ($) {

    setInterval(function () {
        spectrum()
    }, 5000);

    var frontPanel = $('div#front-panel-bkgr'),
        clrSwitch = $('span#clr-swtch');

    function spectrum() {
        var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';
        frontPanel.animate({backgroundColor: hue}, 7000);
        clrSwitch.animate({color: hue}, 7000);
    };
});

タイミング

アニメーションはsetInterval、関数を呼び出すよりも2秒長くかかります。最初のループまたは2つは問題ないかもしれませんが、最終的には、要素が同時に2つまたは3つの色に変更しようとします。を削除しsetInterval、アニメーション関数の1つへのコールバックとして関数を追加します。また、両方のアニメーションの実行に同じ時間をかけたい場合7000は、を変数に置き換えます。これにより、開発中に1つの場所でのみ値を変更し、両方のルールを同時に実行できます。

jQuery(document).ready(function ($) {

    var frontPanel = $('div#front-panel-bkgr'),
        clrSwitch = $('span#clr-swtch'),
        timer = 7000;
    spectrum();
    function spectrum() {
        var hue = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')';
        frontPanel.animate({backgroundColor: hue}, timer);
        clrSwitch.animate({color: hue}, timer, spectrum());
    };
});

[編集]

コールバックは自己参照であるため、無限ループが発生します。ブラウザ(またはおそらくjQuery?)はそれを解決し、範囲エラーをスローしていると思います。これを回避するには、コールバックを無名関数でラップします。

        clrSwitch.animate({color: hue}, timer, function() {spectrum();});

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Prologスクリプトの最適化

分類Dev

Javascript:画像を自動変更するためのスクリプトの最適化

分類Dev

DjangoAdminのリストビューと変更ビューの異なるクエリセットの最適化

分類Dev

ログファイルを色付けするためのスクリプトを最適化する方法

分類Dev

Google AppsScriptのJavaスクリプトの最適化

分類Dev

Bashスクリプトのcsv操作の最適化

分類Dev

GoogleAppsスクリプトのJavaスクリプトの最適化

分類Dev

カスタムjqueryinitスクリプトの最適化

分類Dev

WordPressWoocommerceインポートスクリプトの最適化

分類Dev

Powershellスクリプトの速度。求められる最適化

分類Dev

Bashスクリプト; 処理速度の最適化

分類Dev

スクリプトの速度を最適化する方法は?

分類Dev

PLSQL スクリプトの最適化/チューニング

分類Dev

大規模なリストの各ループのJQueryを最適化する

分類Dev

redis.callへのRedisLuaスクリプト呼び出しの最適化

分類Dev

テキストの色を変更するIllustratorスクリプト

分類Dev

Jquery関数の最適化(スリックスライダー)

分類Dev

クリック時のテキストの色の変更

分類Dev

ループに入れるのではなく、単一のクエリに変更して最適化する

分類Dev

map / reduce / filterを使用したJavascriptスクリプトの最適化

分類Dev

正規分布を計算するNumPyスクリプトの最適化

分類Dev

特定の色のすべてを選択して別の色に変更するGimppython-fuスクリプト

分類Dev

大量の除外を行うリクエストの最適化

分類Dev

他のスクリプトから最適化モードでPythonスクリプトを実行する

分類Dev

vbaスクリプトで箇条書きの色を変更する

分類Dev

Javaスクリプトを使用して<a>タグの色を変更する

分類Dev

スクリプトを介してUIボタンの色を変更する

分類Dev

最適化グーグルスクリプト-25のスプレッドシートにアクセス

分類Dev

F#リストの最適化

Related 関連記事

  1. 1

    Prologスクリプトの最適化

  2. 2

    Javascript:画像を自動変更するためのスクリプトの最適化

  3. 3

    DjangoAdminのリストビューと変更ビューの異なるクエリセットの最適化

  4. 4

    ログファイルを色付けするためのスクリプトを最適化する方法

  5. 5

    Google AppsScriptのJavaスクリプトの最適化

  6. 6

    Bashスクリプトのcsv操作の最適化

  7. 7

    GoogleAppsスクリプトのJavaスクリプトの最適化

  8. 8

    カスタムjqueryinitスクリプトの最適化

  9. 9

    WordPressWoocommerceインポートスクリプトの最適化

  10. 10

    Powershellスクリプトの速度。求められる最適化

  11. 11

    Bashスクリプト; 処理速度の最適化

  12. 12

    スクリプトの速度を最適化する方法は?

  13. 13

    PLSQL スクリプトの最適化/チューニング

  14. 14

    大規模なリストの各ループのJQueryを最適化する

  15. 15

    redis.callへのRedisLuaスクリプト呼び出しの最適化

  16. 16

    テキストの色を変更するIllustratorスクリプト

  17. 17

    Jquery関数の最適化(スリックスライダー)

  18. 18

    クリック時のテキストの色の変更

  19. 19

    ループに入れるのではなく、単一のクエリに変更して最適化する

  20. 20

    map / reduce / filterを使用したJavascriptスクリプトの最適化

  21. 21

    正規分布を計算するNumPyスクリプトの最適化

  22. 22

    特定の色のすべてを選択して別の色に変更するGimppython-fuスクリプト

  23. 23

    大量の除外を行うリクエストの最適化

  24. 24

    他のスクリプトから最適化モードでPythonスクリプトを実行する

  25. 25

    vbaスクリプトで箇条書きの色を変更する

  26. 26

    Javaスクリプトを使用して<a>タグの色を変更する

  27. 27

    スクリプトを介してUIボタンの色を変更する

  28. 28

    最適化グーグルスクリプト-25のスプレッドシートにアクセス

  29. 29

    F#リストの最適化

ホットタグ

アーカイブ