2

Web ページまたは JavaScript コードから RPC (リモート プロシージャ コール) を実行する最良の方法は何ですか? サーバーがダウンした場合に PHP で何もせずに Web ページをライブ更新できるように、可能であれば JavaScript に保持したいのですが、JavaScript でページの更新を処理する必要があります...おそらくリクエストを送信することさえありますローカルで実行されている python シェル スクリプト...これは JavaScript から合法ですか?

私は、リモート マシンでリクエストを処理することを好みます。XMLRPC や JSONRPC でこれを行う方法についてはよく耳にしますが、良い例は見たことがありません。Microsoft は XMLhttprequest の使用を提案していると思いますが、ActiveX 呼び出しを使用したり、Internet Explorer 用の特別なコードを必要としないものは見たことがありません... Python/Ruby/C++ にコマンドを渡す簡単な方法が欲しいだけです。ウェブページからのコード。

Python サーバー コード (RPC 要求を待機中):

import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer
def my_awesome_remote_function(str):
    return str + "awesome"
server = SimpleXMLRPCServer(("localhost", 8000))
print "Listening on port 8000..."
server.register_function(is_even, "is_even")
server.serve_forever()

JavaScript コードの例:

var client = rpc.server("http://localhost:8000/");
var my_local_variable = client.my_awesome_remote_function(param);

サーバーにリクエストを送信し、そのサーバーからデータを取得する良い JSON/JavaScript の例はありますか?

ありがとう!

4

1 に答える 1

2

このように機能することはほとんどありません: client.my_awesome_remote_function. js に__callは php のような魔法はありません。また、リモート呼び出しは、いくつかのタスクの終了後に呼び出される関数 - コールバックのアイデアを使用して、主に非同期でjsで行われます。

var client = rpc.server("http://localhost:8000/");
var my_local_variable;
client.rpc('my_awesome_remote_function', [param], function(result) {
    my_local_variable = result;
});

その呼び出しに関するチュートリアルを簡単に見つけることができます。「ajaxチュートリアル」をグーグルで検索してください。例: http://www.w3schools.com/ajax/ajax_intro.asp (イベント w3schools は最適なサイトではなく、詳細に誤りがありますが、それでも初心者には適しています)。

すべての ajax 実装は、古い IE 用の最新の XMLHttpRequest コントロールと ActiveX コントロールの両方を使用します。

これらのリクエストを同期的に実行することは可能ですが、ユーザー エクスペリエンスの観点からは非常に悪いと考えられています。また、とにかくコールバックの概念に対処する必要があります。

于 2012-04-04T07:52:07.090 に答える