1

別のプログラムで生成された値をJavaScriptで利用できるようにする方法はありますか?

私はウェブデザインとJavaScriptにかなり慣れていないので、自分がやりたいことができるかどうかはよくわかりません。私は、セキュリティの問題のために、これのいくつかが意図的に実行するのを難しくしている(防止されている?)ことを知っています。可能か不可能かを確認するほど、実際に書き出されたソリューションは必要ありません。また、それに使用される適切なAPI/関数セットも必要ありません。

外部デバイスと通信しているWebサイトにアクセスするデバイス上の別のプログラムで生成された値に基づいて、サードパーティのJavaScriptAPI関数を使用するWebページが必要です。ただし、これを継続的なプロセスにしたいと思います。Webページが開いたら、値を監視し続け、必要に応じて呼び出しを更新する必要があります。

ある種の直接的な相互作用が望ましいでしょう(コールバック関数などを渡す方法はありますか?)が、それができるように見えるものは今のところ見ていません。プログラム側でXMLファイルに値を書き込み、Webページ側でファイルを繰り返し再読み取りするループを作成するようなことは可能ですか?これが私が望むものに対して十分に速いかどうかはわかりません。

さまざまなブラウザなどとの互換性については心配していません。そのため、ほとんどサポートされていないHTML5構文のようなソリューションでも、動作するブラウザを1つ入手できれば問題ありません。

4

3 に答える 3

1

外部アプリケーションにサーバー上のある種のWebインターフェースを公開させてから、クライアント側にJavascriptを介してAJAX要求を実行させ、Webインターフェースから新しいデータをプルすることができます。

于 2012-11-29T02:05:59.180 に答える
0

これは実際には非常に良い質問です。一部の人々はそれをすくい取ったかもしれません、そして彼らにとってそれは他の多くの初心者-ウェブを誤解するタイプの質問のように見えるでしょう。しかし、これは実際には異なります。

外部デバイスと通信しているWebサイトにアクセスするデバイス上の別のプログラムで生成された値に基づいてサードパーティのjavascriptAPI関数を使用するWebページが欲しい

太字の部分がこれを差別化するものです。

はい、可能です。これが、FlashおよびJavaプラグインがWebカメラとマイクにアクセスする方法です。しかし、それは簡単ではありません。

まず、これは通常のサーバーベースの対話ではありません(もしそうなら、それははるかに単純であり、多くのWeb開発者はそのような質問をするさらに別の初心者に当然イライラするでしょう)。基本的に、Webアプリがユーザーのマシンのハードウェアにアクセスできるようにする必要があります。

幅広いブラウザとの互換性などは気になりません

いいですね、それで少し簡単になります。Web APIは、この種のことをまったく処理しないためです。ブラウザへの低レベルのアクセスが必要です。

基本的に2つのオプションがあります。

  1. FlashまたはJavaが、アクセスしようとしているハードウェアへのアクセスをサポートしている場合は、FlashまたはJavaのいずれかでアプレットを作成してみてください。2つのうち、Javaは、低レベルの非標準的な処理を実行したいプログラマーにとっては少し使いやすいものです。ただし、多くの場合、フラッシュはユーザーにとってより使いやすいものです(何らかの理由で、今日までのJavaアプレットは巨大で、ロードに長い時間がかかる傾向があります)。

  2. FlashまたはJavaでやりたいことができない場合は、他に1つの選択肢しかありません。ブラウザプラグインを作成することです。これには2つのオプションがあります(注:これまでにこれを行ったことがないので、読んだ内容だけを使用します)。まず、古いNetscapeプラグインAPIに基づいてプラグインを開発できます。それについてもっと学ぶために周りのグーグル。Windows上のIEの場合、ActiveXプラグインを開発する2番目のオプションがあります。あなたもそのためにグーグルで回ることを試みることができます。

    少しグーグルすると、NPAPIとActiveXの両方にコンパイルできるクロスブラウザプラグインフレームワークであるFirebreathにたどり着きました。

    ああ、3番目のオプションがあります。ChromeとFirefoxの場合、JavaScriptベースのプラグインを作成できます。IEのActiveXと同様に、プラグインはクロスブラウザ互換ではありません。javascriptプラグインAPIが本当に低レベルのハードウェアにアクセスできるかどうかさえわかりません。

あなたがやろうとしていることは面白いです。多くの人はそれをしていません。しかし、それは実行可能です。幸運を。

于 2012-11-29T02:40:28.697 に答える
0

私はイワンの考えが好きです。これが私がそれをする方法です:

外部プログラムで、 WebSocket接続を受け入れることができるWebサーバーを起動します。標準的に使用されていない非常に高いポートを選択してください。WebSocketを行うには、node.jsSocket.IOが好きですが、WebSocketライブラリはJava、Python、Rubyなどに存在します。

次に、WebページでWebSocketを開いて、ローカルで実行されているWebサーバーにアクセスします。これにより、データをjavascriptアプリに非常にすばやくストリーミングできます。Socket.IOの例を参照して、それがいかに簡単であるかを確認してください。外部プログラムが新しいデータを取得するたびに、それをWebページにプッシュする可能性があり、新しいデータを使用してjavascriptコールバックが起動されます。

アップデート:

他のプログラムはC++で記述されているため、この質問と回答は興味深いかもしれません:https ://stackoverflow.com/questions/3916217/standalone-c-websocket-server-library 。

于 2012-11-29T03:06:19.737 に答える