[解決済み] RPC(リモートプロシージャコール)でJavaScriptを使用する
質問事項
ウェブページから、またはJavaScriptのコードからRPC(リモートプロシージャコール)を行うには、どのような方法が一番良いのでしょうか? 私は可能であればJavaScriptでそれを維持したいので、サーバーがダウンした場合にPHPで何もすることなくウェブページのライブアップデートを行うことができ、JavaScriptはまだページの更新を処理したい...おそらくローカルで実行中のパイソンシェルスクリプトにリクエストを送る... これは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の良いサンプルはありますか?
ありがとうございました。
解決方法は?
この方法では、ほとんどうまくいきません。
client.my_awesome_remote_function
. のようなjsには魔法はありません。
__call
を使用します。また、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 tutorials"でググってみてください。 例: http://www.w3schools.com/ajax/ajax_intro.asp (w3schoolsはベストなサイトではないし、細かいところで間違いがあるけれど、それでも初心者には良いサイトです).
すべてのajaxの実装は、最新のXMLHttpRequestと古いIE用のActiveXコントロールの両方を使用します。
これらのリクエストを同期的に実行することは可能ですが、ユーザーエクスペリエンスの点から非常に悪いと考えられています。また、いずれにせよコールバックの概念を扱う必要があります。
関連
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み] $wpdb->update または $wpdb->insert を実行すると、引用符の前にスラッシュが追加される
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み] SSLエラー SSL3_GET_SERVER_CERTIFICATE:証明書の検証に失敗しました。
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScriptでドロップダウンリストの選択値を取得する
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】不明なMySQLサーバーのホスト
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】 PHP 未定義関数の呼び出し
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】file_get_contents( )が動作しない。
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み] mysql_field_nameを新しいmysqliに変更します。