0

ページの特定の部分をリアルタイムで変更して、ユーザーが特定のアクションを実行するのにどれだけ待つ必要があるかを知るのに役立つゲームのユーザースクリプトを作成しています。

私が直面している問題は、ゲームに AJAX が既に組み込まれており、3 秒ごとにjQuery.getJSON()関数を呼び出して情報を取得して更新することです。私のスクリプトは、ページが 3 秒ごとではなく、リアルタイムで更新されているかのようにエンド ユーザーに見せる必要があります。追加情報も追加します。追加のリクエストを追加しないでください (ゲームの所有者はそれを好まないでしょう)。

これを行うには、ページのデフォルトの動作をオーバーライドする必要があります。呼び出しのコールバック関数を変更してjQuery.getJSON()機能を追加する必要があります。または、少なくとも完全に無効にして、新しいものを作成できるようにします。また、新しい関数を古い名前に割り当てるのは簡単ではありません。名前がないため、jQuery.getJSON()呼び出し内で関数を構築するだけです。これは可能ですか?

ページ スクリプトは別の .js ファイルに含まれています。

4

1 に答える 1

1

jQuery.getJSON() 呼び出しが変数に割り当てられている場合、jqXHR オブジェクトが返されます。これは、コールバックを追加または変更することで変更できます。

変数として公開されていないが、代わりに単にそのように呼び出される場合

... js blah ...
jQuery.getJSON("myurl",function(){
    more blah
});
... more blah ...

...それなら、パドルなしで小川を上っていると思います。ハンドルのない匿名の関数呼び出しになるからです。その時点での唯一の方法は、最初のスクリプトの上に別のスクリプトをロードしてオーバーライドを試みることですが、それがブラウザー環境からどれだけ安定するかは本当にわかりません。

$.ajax() システムの仕組みの詳細については、 http: //api.jquery.com/jQuery.getJSON/およびhttp://api.jquery.com/Types/#jqXHRの jQuery リファレンスを参照してください。

于 2012-10-10T17:16:18.303 に答える