OperaMiniの4番目のバージョンは、現時点で最新のものと見なします。
さらに、この記事ではOpera開発者サイトの情報を使用しました 。
だから、OperaMini、組み込みウォーカーの品質が不十分である携帯電話用のブラウザバージョン。 主な機能は、ページを直接ダウンロードして解析するのではなく、このためにOperaの中間サーバーを使用することです。リクエストされたページはやや短いOBML形式(Opera Binary Markup Language)で最適化され、90%に達することができます!
OperaMiniは膨大な数のMIDP 2およびMIDP 1ワイヤレスデバイスでも動作するため、コンピューティングリソースの制限は非常に大きく、デバイスにJavaScriptエンジンを直接実装する意味はありません。端末としては、JavaScriptに対して同様の、より複雑なアプローチが使用されます。
原則として、OperaMiniがメインOperaに組み込まれているものと同様のJavaScriptエンジンを使用することは論理的です。 ただし、主な違いは、もちろん、サーバー上ですべてが可能ですが、いくつかの制限があることです。
- DOM関連イベントの限定サポート。
- バックグラウンドスクリプトを実行できない。
- AJAXの使用は非常に限られています。
ページが完了する前に行う必要のあるすべての処理(onLoadスクリプトなど)は、ページが発行される前にサーバーで実行されます。これは、連続して呼び出される関数の実行時間の論理的な制限も意味します(たとえば、 setInterval() 、 setTimeout()
例1 :
ページにテキストを表示します
ハローハブラー
後
< html >
< head >
< title > OperaMini 4.2 </ title >
</ head >
< body onload ='document.getElementById("onLoadChangeMe").innerHTML="AFTER"' >
Hello Habr
< div id ='onLoadChangeMe' > BEFORE </ div >
</ body >
</ html >
* This source code was highlighted with Source Code Highlighter .
クライアント側にはどのような機会が残っていますか?
次のようなフォームイベントに関連するスクリプト
- onSubmit-フォームにこのイベントのハンドラーがある場合、データが送信されると、無条件にスクリプトが実行されるサーバーにアップロードされ、結果がクライアントに返送されます。
- onChange-同様に機能します。このイベントのハンドラーを持つリストから項目を選択すると、ページ全体が完全にリロードされ、目的の機能がサーバー上で実行されます。
- onClick-フォームボタン用-サーバー上でも動作し、結果を含むページをリロードします。
OnClickイベントは、フォームだけでなく、他のすべてのページ要素でも使用できます。
さて、通常のアラート(「HI」)は再起動なしで機能します。
例2:
ボタンを押すと、ページがリロードされ、BEFOREがCLICKEDに置き換えられます。
< html >
< head >
< title > OperaMini 4.2 </ title >
</ head >
< body onload ='document.getElementById("onLoadChangeMe").innerHTML="AFTER"' >
Hello Habr
< div id ='onLoadChangeMe' > BEFORE </ div >
< input
type ='button'
value ='Action test' onclick ='document.getElementById("onLoadChangeMe").innerHTML="CLICKED"'
/>
</ body >
</ html >
* This source code was highlighted with Source Code Highlighter .
例3 :
選択したアイテムを変更すると、ページがリロードされ、アラート()が表示されます。
< hr />
< select id ='tstSel' onchange ='alert(this.selectedIndex)' >
< option value ='Uno' > Uno </ option >
< option value ='Duo' > Duo </ option >
< option value ='Tres' > Tres </ option >
</ select >
* This source code was highlighted with Source Code Highlighter .
onMouseOver / -Out / -Down / -Up、onKeyDown / -KeyPress 、 onBlur、onFocusなどの他のイベントは無視されます。
AJAXについて
上記の制限を考慮すると、AJAXが通常どおり動作できないことは明らかです。 しかし、良い知らせがあります。XMLHttpRequestがサポートされています! したがって、いくつかの制限はありますが、AJAXを積極的に使用している多くのサイトが機能します。
犠牲にならなければならなかった主なことは、新しいデータを求めてサーバーを絶えずポーリングする機能でした。たとえば、リアルタイムチャットを行うことはできず、GMailでは新しい文字の通知は自動的に表示されません。
ユーザーのアクション、マウスでのクリック、入力フィールドの変更に対する応答として実行されるスクリプトは、ページのリロードが機能しますが、AJAXを使用する重要性を大幅に減らしますが、少なくとも意図したとおりに機能します。