1

私たちの会社のサイトには JavaScript の問題があり、必死に解決しようとしていますが、本当に苦労しています。私の JS スキルは、jQuery などを使用してサイトを構築するのに十分ですが、デバッグはそれほど得意ではありません。

一見ランダムに、ページ上のすべての JS コンポーネント (jQuery Datepicker など) が動作を停止します。エラー コンソールを開いた状態でページを強制リロードすると、これらのエラーが約 60% の確率で発生します。パターンはないようです。これが発生した場合にサイトを修正する唯一の方法は、キャッシュをクリアして再読み込みすることです.

コンソールは次を出力します。

Uncaught TypeError: Object #<Object> has no method 'each'
Uncaught TypeError: Object #<Object> has no method 'not'
Uncaught TypeError: Object #<Object> has no method 'each'

ただし、これは一例にすぎません。それ以外の場合は、まったく異なるエラーが発生します。たとえば、この質問を送信してから数分後、もう一度試してみたところ、次のようになりました。

Uncaught TypeError: Cannot call method 'apply' of undefined

これも jquery.min.js からスローされました - きれいに印刷された、1453 行目 (3 行目):

 if (g.call(k) === "[object Array]")
     if (!u)
         e.push.apply(e, k);

すべての未処理の例外でブレークするように Chrome を設定しました。これは、縮小された jQuery ライブラリの 3 行目でキャッチされた別の例外でした。以下に示すのは、きれいに印刷されたバージョンです。

try {
    b.call(c.documentElement, "[test!='']:sizzle")
    } catch (f) {
        e = !0
    }

実際のエラー行が始まりますb.call[...]。これは、jquery.min.js の 1904 行目に当てはまります。

  • 最新のjQueryを使用しています
  • これは最近発生し始めたばかりです-何も変更しなかった後!
  • エラーは一見ランダムに発生します
  • 通常 (ただし、場合によっては)、スクリプト (script.js など) からエラーがスローされることはありません。通常は、縮小されたライブラリからスローされます。毎回異なります。
  • これはすべてのブラウザーで発生するようですが、Firefox よりも Chrome でより頻繁に発生します。

どこから始めればよいですか?残念ながら、これは社内の企業 Web サイトであるため、サイト全体で機密データを扱っているため、アクセスを提供するのは難しい.

ご協力ありがとうございました!

4

1 に答える 1

0

あなたのページはかなり大きく、DOMが完全に読み込まれる前にブラウザがjsコードを実行しようとしているようです...おそらくインラインJavaScriptコードを使用しているためです。

これは、ランダムエラーと、リロードを強制したときにエラーが発生するという事実を説明している可能性があります。

jsコードを問題なく実行できるように、JSコードをdomreadyイベント内に配置することをお勧めします。

お役に立てれば :)

于 2012-04-16T08:55:48.373 に答える