2

永続性を備えた Channel API を実装しました。チャネルを作成してソケットを接続すると (これはローカルの dev_appserver ではなく、実際のアプリ上にあります)、Firebug はログ メッセージで異常になります。自分のログを表示できるようにこれらをオフにしたいのですが、チャネル API コンソールのログを無効にする方法に関するドキュメントが見つかりません。

私がおそらく他の人とは違うことをしているのは、クロスドメインに接続していることです...チャネルAPIがサポートしています(ストリームの最初のメッセージに注意してください...その写真を見ることができれば)

ここに画像の説明を入力

誰か知っていますか?


アップデート

私のコードが 2 つのチャネルを作成し、両方を同時に開いたり接続したりしようとしていることに最終的に気付きまし。私はこれを行うつもりはありませんでした (私はルールを知っています: https://developers.google.com/appengine/docs/python/channel/overview#Caveats )...それはバグでした...そして私が修正したらメッセージは管理可能なレベルに戻りました。

わーい

4

2 に答える 2

1

開発サーバーでは、ChannelAPI を使用すると、Comet/ロング ポーリングを使用する代わりに、基本的にポーリングの実装に低下します。したがって、デバッガーでは、更新を継続的かつ系統的にチェックするためにサーバーに対して行われる HTTP 要求の無限のストリームが表示されます。

本質的に、これらは単なる AJAX リクエスト、または Firebug が考えているように、XMLHttpRequests です。

これらのリクエストはブラウザが行うため、それらを無効にする唯一の方法は、Firebug の [コンソール] にある小さな矢印をクリックし、XMLHttpRequests をログに記録するオプションのチェックを外すことです。

Firebug で XmlHttpRequest ロギングのチェックを外します

もちろん、これにより、他のすべての XMLHttpRequest のロギングも無効になります。しかし、静かで行儀の良い JavaScript コンソールの明快さと静けさのために支払うのは小さな代償です。

Firebug を最大限に活用する方法の詳細については、Firebug のヒントとコツ を参照してください。

注: これは、Python SDK と Java SDK の両方のユーザーに有効です。(または同等の ChannelAPI があると仮定すると、Go SDK)。これは Python Appengine だけに限定されません。

アップデート:

getFirebugから:

特定のコードがいつ実行されたかを測定するために、HTTP トラフィック タイミングと一緒に使用できるタイム スタンプを作成します。

console.timeStamp メソッドは Firebug 1.8.0 でリリースされました。上記と同じ手法で、この Firebug ロギング メソッドをオーバーライドすることもできます。

console.timeStamp("This is the type of console logging statement that Google is using!");

上記のロギング ステートメントは、オリーブ テキストを生成します。この方法は、前のセクションで説明したのと同じ手法を使用して無効にすることができます。

ただし、Google はコンソール オブジェクトをクロージャ内にロードします。つまり、Google のコードが初期化されると、ChannelAPI オブジェクトはコンソール オブジェクトの独自のコピーを持ちます。

console.timeStamp を無効にするには、他の何かをロードまたは実行する前に、最初のアクションとしてこれを無効にする必要があります。つまり、無効になっている console.timeStamp メソッドだけを Google が利用できるようにする必要があります。

最良の結果を得るには、次のコードを /_ah/channel/jsapi スクリプト タグの上にロードして、jsapi がロードされる前に console.timeStamp メソッドが無効になっていることを確認します。

if(window.console) console.timeStamp = function(t) { };

注: Google はこの方法で Firebug のログ記録を呼び出すため、唯一の解決策として、バグ レポートまたはこのレベルのログ記録をプログラムで無効にする機能リクエストが実際に必要になる場合があります。または、Firebug チームは、エラー、警告、XMLHttpRequests、およびその他のログ レベルで行った方法と同様に、timeStamp ログ ステートメントを明示的に無効にする機能を含む新しいバージョンの Firebug を提供できます。

于 2012-05-23T07:28:38.057 に答える
1

Firebug の timeStamp ログを停止する方法はないようです。この問題を解決する 1 つの方法は、コードを編集してこの機能を自分で削除することです。

拡張機能を Mozilla Firefox プロファイルのディレクトリに解凍します。

ディレクトリを Firefox プロファイル拡張ディレクトリに変更します。Ubuntu では、これは次のようになります。

cd ~/.mozilla/firefox/{random-string}/extensions/

Firebug 拡張機能は で識別されfirebug@software.joehewitt.com.xpiます。同じ名前で .xpi を含まない新しいディレクトリを作成し、XPI をそのディレクトリに移動します。

mkdir firebug@software.joehewitt.com
mv firebug@software.joehewitt.com.xpi firebug@software.joehewitt.com

次に、ディレクトリを新しく作成した Firebug ディレクトリに変更し、拡張機能を解凍します。

cd firebug@software.joehewitt.com
unzip firebug@software.joehewitt.com.xpi

拡張機能のディレクトリが現在のディレクトリになるように、すべてのファイルを解凍する必要があります。ファイル構造は次のようになります。

$: ~/.mozilla/firefox/{random-string}/extensions/firebug@software.joehewitt.com$ l
chrome.manifest  defaults/  firebug@software.joehewitt.com.xpi  install.rdf  locale/   skin/
content/         docs/      icons/                              license.txt  modules/

$: ~/.mozilla/firefox/ghlfe0bb.ff5.0/extensions/firebug@software.joehewitt.com$

テキスト エディターで consoleExposed.js を開きます。

次に、content/firebug/consoleディレクトリに移動します。

cd content/firebug/console

consoleExposed.jsお気に入りのエディターを使用してファイルを編集します。

vim consoleExposed.js

console.timeStamp を無効にします。

215 行目またはその近くに、次の関数が表示されます。

console.timeStamp = function(label)
{  
    label = label || "";

    if (FBTrace.DBG_CONSOLE)
        FBTrace.sysout("consoleExposed.timeStamp; " + label);

    var now = new Date();
    Firebug.NetMonitor.addTimeStamp(context, now.getTime(), label);

    var formattedTime = now.getHours() + ":" + now.getMinutes() + ":" +
        now.getSeconds() + "." + now.getMilliseconds();
    return logFormatted([formattedTime, label], "timeStamp");
};

最初の中かっこの直後に、関数が何も返さないように強制します。

console.timeStamp = function(label)
{   return ;   // disable timestamp by returning
    label = label || "";

    if (FBTrace.DBG_CONSOLE)

Firefox を再起動して、timeStamp のない世界をお楽しみください。

編集後、Firebug を再起動します。コンソールに timeStamp のログ メッセージが表示されなくなります。

于 2012-06-01T03:05:19.287 に答える