0

私は現在、学生がブラウザーでコードの例を見て、ブラウザーでコードを編集できる Web ベースの教育ツールに取り組んでいます。私は、クライアント側のコンパイラと連携し、ブラウザでコードを実行/デバッグできるシステムを実装しようとしています。調査を重ねるほど、セキュリティ上の問題が発生するため、ブラウザーはこのようなことが起こらないように設計されていることがわかります。コンパイラをローカルで実行する方法、つまり拡張機能、ajax、またはその他の方法を使用する方法があるのではないかと考えていました。

Python から始めていますが、できるだけ多くの言語に対応することを目的としています。

スクリプトサーバー側を実行して出力を表示できることは承知していますが、これは(私の知る限り)アプリケーションに限定されており、特にGUIに関してです。

4

1 に答える 1

0

私のプロジェクトでは、このようなことをする必要がありました(コンパイラではありませんが)。URL を指定してリソースをダウンロードし、Kindle で読める形式に処理する必要がありました。操作をトリガーするブラウザプラグイン(Webページではなく)があり、それでさえブラウザを「離れる」ことが許可されていなかったため、それはあなたのものとまったく同じではありません。

最終的に、プラグインが URL を送信して処理するクライアント側で実行される小さなアプリを作成する必要がありました。

設定はこんな感じ

browser plugin (via ajax) <------> web app on client ----> compiler/etc.

ブラウザーはコード スニペット (あなたの場合は私の URL) を、何らかのポート (たとえば9999) をリッスンしているローカル マシンで実行される Web アプリに送信します。ローカル リソースにアクセスできるため、実際にコードを実行し、ブラウザに何かを返してレンダリングすることができます。

私の場合、ブラウザーは URL だけを含む JSON 文字列を Web アプリに送信します。.mobiWeb アプリはリソースをフェッチして処理し、kindle が読み取れるファイルに変換してから、ディレクトリにドロップします。変換の結果 (成功/失敗) と変換されたファイルの場所がブラウザーに返され、変換が完了したことが通知されます。

コンパイラに直接アクセスするプラグインは書けないと思います。ローカルアプリと通信する必要があります。セットアップは技術者以外のユーザーにとっては複雑ですが (私のプロジェクトの README を見てください)、うまくいきます。

于 2012-06-22T04:46:25.217 に答える