0

jqueryでスクリプトを動的にロードするとき

...
options = {
  dataType: "script",
  cache: true,
  url: "...appContr.js"
}
return jQuery.ajax(options);    
...

スクリプトをfirebugでデバッグします。このスクリプトの名前は「1」で、すべてが1行(または数行)になっています。これをデバッグに使用することはできません。

Firefox10.0.2とFirebug1.9.1を使用しています。

LAB.jsを使用する場合

$LAB.script("...appContr.js").wait(function() {
      ...
    });         

またはrequire.js

ファイルには改行があり、スクリプトの名前は「appContr」です。

同じ結果を得るためにjQueryコマンドを変更するにはどうすればよいですか?

よろしくお願いします

編集:

Headshota、あなたの答えに感謝します、しかしこれは助けにはなりません。
その上、getscriptはコンテンツをキャッシュしません、そしてこれは私にとって重要です。

編集:

マーリン、あなたの答えをありがとう:

lab.jsまたはrequire.jsを使用してスクリプトをロードすると、Firebugの拡張なしですべてが機能します。問題は、jqueryスクリプトのロードのみにあります。

Firebugには、コンソール、html、css、スクリプト、dom、およびネットワークのタブがあります。jqueryスクリプトのロード後にスクリプトを実行してスクリプトを表示すると、コードに改行はありません。
しかし、「タブ」コンソールに移動すると、getリクエストのエントリが1つあります。このgetリクエストで「answer」をクリックすると、スクリプトに改行が含まれています。しかし、「script」タグに改行がないため、これは役に立ちません。

4

2 に答える 2

2

dataType: scriptjQuery.ajax()応答をJavaScriptとして解釈し、評価するように指示します。

"script":応答をJavaScriptとして評価し、プレーンテキストとして返します。

評価されたコードには、基本的にファイル、行番号、およびおそらく空白がありません。FireBugでデバッグしようとすると、おそらく「eval()ed」コードであることがわかります。

LABjsなどのJavaScriptローダー<script src>は、ドキュメントにタグを挿入することで機能します。JavaScriptのファイル名、ファイルの内容、行番号がすべて利用できるため、FireBugのデバッグが簡単になります。

于 2012-04-20T10:48:55.093 に答える
1

Firebugでスクリプトの名前を正しく取得する方法はわかりませんが、他のジレンマに関しては、考慮すべきFirebug拡張機能がいくつかあります。

JS Deminifier 1.0.7 by Ben Murphy:これにより、JavaScriptが非常に読みやすいコードに拡張されます(ただし、JavaScriptが非常に縮小されている場合は、中断が発生する可能性がありますが、この場合は発生しないようです)。Firebugの下に表示されるアドオンバーがオンになっていて、JSDがオンに設定されていることを確認してください(左下)。

FirebugでのJavascriptデバッグのためのもう1つの良いオプション...

BinaryAgeによるFireRainbow1.5:これは、firebugで表示されるjavascriptに、非常に役立つ構文の強調表示を提供します。

これらのツールが問題を軽減することを願っています。

于 2012-04-20T10:31:55.910 に答える