これは、Opera Unite(「サービス」または「プラグイン」とも呼ばれます)でWebアプリケーションを作成する方法を理解するのに役立ちます。
15行のJavaScript + 7 XML。
明らかに、まずOpera Uniteをダウンロードしてインストールします(Operaが既にインストールされている場合は、必要に応じて更新が行われます)。
2つのファイルを作成するフォルダーを作成します。
1. config.xmlを作成します。
<ウィジェット> <widgetname>テスト</ widgetname> <機能名= "http://xmlns.opera.com/webserver"> <param name = "type" value = "service" /> <param name = "servicepath" value = "test" /> </機能> </ widget>
2. index.htmlファイルを作成します。
<スクリプト> var counter = 0; window.onload = function(){ webserver = opera.io.webserver if(ウェブサーバー){ webserver.addEventListener( '_ index'、start_page、false); } } function start_page(r){//スペースはオプションで、habrのみがこれを(r)に置き換えます カウンター++; var o = r.connection.response; o.write( 'このページは<b>' + counter + 'times </ b> !!'で表示されました); o.close(); } </ script> <html> <title>マイアプリケーション</ title> </ html>
これは明らかに完全な例ではありません。 スクリプトを別のファイルに保存することで拡張できます。
* Opera Uniteがアクティブでない場合はアクティブにします(Operaは次のステップでそれについて尋ねますので、スキップできます)
4. config.xmlをOperaにドラッグアンドドロップします。 彼女は尋ねます-インストールするかどうか? 確認します。
すべて準備完了です。 投稿の冒頭に写真があります。
(英語-60行のJavaScriptで簡単なブログを作成する方法)
5. index.htmlで何かを変更する場合-古いバージョンが表示されます-デバッグソリューション:Unite->「サービスの管理」(またはF4)アイコンを右クリックし、「テスト」->「サービスの停止」を右クリックし、同じ、「サービスの開始」のみ。 ソースが再起動します。 カウンターはリセットされます(永続性の問題、私はまだそれを解決する方法を探しています。おそらくfileioライブラリ+ JSONの何かがRESTデータベースになります)。
6.創造性を誰かと共有するには、URLをコピーし(OperaではF8-Ctrl + C)、次のように変更します。
unite://-> http://
そのように
unite://my_compute.my_opera_login.operaunite.com/test/
になる
http://my_compute.my_opera_login.operaunite.com/test/
7. HTMLテンプレートにマークアップを使用します
Web開発にUniteを使用する必要がありますか? 私はこの主題について多くの異なる考えを持っていますが、それらを翻訳する時間はありません。 英語注文の場合-http://unitehowto.com/Whyをお読みください。
非常に短い場合:
- PHP / MySQLプログラマーにとって、これはクールではありません(これはin辱ではありませんが、3Dモデラーなどの事実として-SketchUpはクールではなく、機能と柔軟性は十分ではありません)
- ほとんどの場合、負荷は問題になりません。PHP/ MySQLまたは以下を参照してください。
- Webアプリケーションのプロトタイピングやローカルアプリケーションの作成(クライアントへの課金など)に非常に適しています。
- PHP / MySQLおよびその他のサーバー言語の非専門家にとって、これはWebサイトを作成するためのまさにWebアプリケーションです。
- Uniteでアプリケーションを作成するのは簡単です。 多くのプラスといくつかのマイナスがありますが、マイナスは大きいため、ブラウザを開いたままにする必要があります。
- クロスプラットフォーム(win / lin / mac)
- 「サーバー」側(高速)JavaScript!
- 最終的には、誰かが* nix / * BSDに基づいてV8本番サーバーを作成し、ローカルのOpera(Google App Engineなど)でデバッグされたアプリケーションを直接公開します。 (nginx用のモジュールもあるかもしれません)
これらの問題の解決策を見つけたら、 unitehowto.comに回答を投稿します。
カウンターをリセットしないようにする方法
永続性の問題は解決しました(Opera、もっと小さな例を見てみましょう!)
1. config.xmlを変更します。
<widget>
<widgetname>Test</widgetname>
<feature name="http://xmlns.opera.com/fileio">
</feature>
<feature name="http://xmlns.opera.com/webserver">
<param name="type" value="service"/>
<param name="servicepath" value="test"/>
</code>
</widget>
ファイルシステムを使用するOperaの許可をオンにするのは私たちです(サンドボックスではすべて注意が必要です)。 次に、スクリプトを変更します。
var counter = 0;
に置き換える
var dir = opera.io.filesystem.mountSystemDirectory( 'storage'); { stream = dir.open(dir.resolve( '/ storage / newfile')、opera.io.filemode.READ); if(ストリーム){ var counter = parseInt(stream.readLine()); stream.close(); }; } catch(err){//メッセージ:FILE_NOT_FOUND_ERR var counter = 0; };
オペラは.exists()メソッドを宣言しますが、私はそれを見つけませんでした(呼び出しのほとんどすべてのオプションを試しました)。また、ファイルがない場合、dir.open(...)はすぐに例外を返します。
別のサンドボックス内のファイルにアクセスする方法について(/ storage /にありません) -fileioドキュメント (英語)をお読みください。
これらの行を使用して、ファイル(/ storage / newfile)から変数をロードします-実際、このファイルはユーザーによって/ Documents and settings /..../ Local settings /..../ 4393408934 /(およびt .p。)、つまり -これは絶対パスではなく、サンドボックス内のパスです。
理論的には、オブジェクトのJSON表現を保存する必要があります。その後、Intだけでなく、複雑なネスト構造を保存できます。
start_pageの最後に、保存を追加します。
var stream = dir.open( '/ storage / newfile'、opera.io.filemode.WRITE); stream.writeLine(カウンター); stream.close();
これは最良のオプションではありません-呼び出しごとにファイルを保存しますが、Operaでwindow.onunloadを忘れていたと思います(window.onloadを実行しました)。
保存を伴う完全なソース: t9.zip
スクリプトのデバッグ、落とし穴
これはOperaのアルファリリースであるため、発言はすべて無料です。
ソースの再起動:「サービスの停止」->「サービスの開始」->(エラーコンソールの確認)-> F5。 (場合によっては、再インストールも必要です。)
[ツール]-> [詳細]-> [エラーコンソール]で何が起こったかのヒントを見つけることができますが、意味のない名前のエラーもあります。 [更新] URL オペラを開きます:config#UserPrefs | Exceptions Stacktrace 、チェックボックスをオンにし 、下の[保存]ボタンをクリックすることを忘れないでください。 これにより、エラーコンソールのエラーが読み取り可能になります。
構文エラーは、各「サービスの停止」→「サービスの開始」の直後にエラーコンソールをチェックすることで検出されます。
config.xmlを変更した場合、ディレクトリの名前を変更し、スクリプトを再インストール(ドラッグアンドドロップ)する必要があります。そうしないと、オペラはメモリから古いバージョンを取得します。
スクリプトでalert()とwindow.onunloadを使用してはいけません(オペラを殺し、バグレポートを送信しました)。
「リソースが見つかりません」というエラーは、構文エラーまたは他の何かを意味します。
一般的に、今のところ、デバッグは恐怖です。
しかし、概して-Opera-巨人! Webを真のP2Pにすることは強力です! そして、こことリンク「/なぜ」の下で説明されている問題-私は彼らがそれを修正すると思います。
ヨイハジ
ハブルからの眺め