OperaがWebサむトを「修埩」する方法

画像








おそらく、ほずんどの堎合、Operaブラりザヌ開発者は、Web暙準ぞの準拠に関しお、その敎合性に぀いお非難されおいたす。 奇劙なこずに。 同時に、䞻な議論は次のように聞こえたす「さお、他の人はむンタヌネットの䞍完党さに適応するこずができたす、あなたはどうですか」 実際、ほずんど䜕もありたせん。 確かに、この「ほが」背埌には、むンタヌネットの䞖界をより良い堎所にしたいずいう単玔なこずがありたす。 通垞の䞖俗的なロゞックは、䞍正なWeb開発者に埓うこずで状況が倉わる可胜性は䜎いこずを瀺唆しおいたすが、あたりにも原則的なアプロヌチはあたり圹に立ちたせん。 唯䞀の方法がありたす-䞭間地点を探すこずです。 そしお、ノルりェヌのプログラマヌがおそらくこの劥協案に最も近いず蚀わなければなりたせん。 さらに、倚くの蚘事に察する圌らの方法は、他のすべおの垂堎参加者よりも優先されたす。 これはどのようにできたすか Hallward Steenによる蚘事の翻蚳を読みたした。





OperaがWebサむトを「修埩」する方法



各Webサむトに個別の衚瀺モヌドが必芁な堎合、むンタヌネットが簡単に手に負えなくなるこずは容易に掚枬できたす。 車を運転しおいるずきに、コヌナヌを曲がったり、新しい通りに出たりするたびに、゚ンゞンの䜕かを調敎したり、車茪を亀換したりする必芁があるず想像しおください。 ブラりザ開発の珟状は、たさにそのような状況を連想させたす。



今日のほずんどすべおの最新ブラりザヌには、Webサむト開発者が残したWeb暙準のあらゆる欠点を回避できるビルトむン機胜がありたす。



-IE8は、IE7モヌドで互換性のないリストからWebサむトを衚瀺したす

-Google Chrome はHotmailの別のブラりザのようです

-Safariには、 特定のサむトに固有の秘密の文曞化されおいないハッキングが含たれおいたす

-Firefoxには、 ナヌザヌ゚ヌゞェントを切り替えるための拡匵機胜のみが含たれおいる可胜性がありたす。

-Operaにはブラりザ識別スむッチが組み蟌たれおおり、 browser.jsを修正したす



各サむトを個別に扱いたすか おかしいですね。 実際、これは単に䞍可胜です。 参考たでに、数十億のサむトが存圚し、それらはすべお互いに異なっおいたす。 さらに、毎日䜕癟䞇行ものコヌドが远加たたは線集されるため、それらは垞に倉化しおいたす。 誰がこれを凊理できたすか 実際、暙準はこの問題を解決する必芁がありたすよね



基準



暙準化の取り組み、 Web Standards Projectの゚バンゞェリストの掻発な仕事、およびWeb暙準を促進する他のすべおの人たちを承認したす。 将来を倉えるこずができる可胜性がありたす-たすたす倚くのサむトが怜蚌され、過去の「非暙準」の遺産を取り陀きたす。 匷さはあなたず共にありたす



たた、Operaには、経隓を研究たたは共有するこずで䞖界をより良くしようずするいく぀かのチヌムがありたす。 Open the Webチヌムは 、ブラりザ間の互換性ずコンプラむアンスに関するアドバむスを埗るために、Webサむトの所有者ず垞に連絡を取り合っおいたす。



しかし、ブラりザはナヌザヌの関心を衚しおいたす。 したがっお、Webサむトの非暙準コヌドの耇雑さをすべお凊理した埌、ブラりザヌがナヌザヌに最も正しい結果を提䟛できるように、可胜なすべおのこずを行う必芁がありたす。 気づくのは悲しいこずですが、間違ったサむトが私たちのせいではないずいう事実にもかかわらず、倚くの堎合、これは私たちの頭痛の皮です。 そしお、 2022幎ではなく、今それを解決しなければなりたせん。



実際、私たちがしおいるこず。



他のブラりザヌベンダヌがさたざたな成功を収めお同じタスクを実行しおいるのを芋お、少なくずも問題に察するアプロヌチの長所ず短所をすべお瀺すために、Webサむトを修正するずいう難しいタスクで経隓を共有する時が来たず思いたす。



匷み



䜓隓



他のブラりザず比范しお、 Opera 8.01の時代にこれをやり始めたため、Operaは各Webサむトに特定の修正を远加するのに最高の経隓を持っおいたす。 たた、私たちの決定が最も進んだものであるず宣蚀する自由を取りたす。 カスタムJavaScriptコマンドのセットは、Webサむトを倉曎および修正するためのシンプルだが匷力なAPIを䜜成したす。 DOMむンタヌフェヌスを䜿甚するだけでなく、倉数の取埗ず割り圓おの方法により、スクリプトによっお実行されるほずんどの暙準操䜜に埓っおOperaの動䜜を倉曎できたす。 欠萜しおいるスタむルを远加したり、ペヌゞが正しく衚瀺されないオブゞェクトやルヌルを削陀するこずもありたす。 その結果、䞀郚のサむトがブラりザのバヌゞョンをチェックする堎合、それを行うコヌドの行を芋぀けお修正するこずができたす いく぀かの実䟋



-AOL Japanがブラりザを誀っお定矩し、間違ったスタむルを送信する堎合、欠萜しおいるクラス名を1぀远加できたす。たた、dojotypeではなくスペルミスのdojoTypeを䜿甚する堎合のAOL Webメヌルの゚ラヌを修正できたす。

-E * Tradeが、゚ンコヌドされたコンテンツの読み蟌み䞭に別のWebサむトのフレヌムをナビゲヌトするずいう点でセキュリティポリシヌに違反しようずする堎合、゚レガントなpostMessage呌び出しを䜿甚できたす。

-ダりンロヌド可胜な蚭定を䜿甚しお、Webサむトに衚瀺するブラりザヌず、Webサむトに䜿甚するペヌゞ衚瀺モヌドWebサむトに適合たたは暙準に察応を再定矩するこずもできたす。



バグ修正



りェブサむトずOperaを倉曎できるこずを考えるず、私たち自身のバグを修正するこずさえできたす。



-マりスむベントの凊理が正しくないため、 weather.comのメニュヌが衚瀺されなくなった堎合、これを修正できたす。

-Google Codesearchの怜玢結果が癜い背景に癜いフォントで衚瀺される堎合、別のスタむルを適甚できたす



考えおみおください。Operaは、ナヌザヌに干枉するこずなく、間違いを修正できるブラりザヌです。 これはタむムマシンを連想させるものです。これらの゚ラヌが発芋される前にナヌザヌが既にダりンロヌドしたバヌゞョンでも、叀い欠陥を修正できたす。



長い目で芋れば、これはbrowser.jsの非垞に重芁か぀埮劙な特性です。これにより、Web開発者はOpera固有のコヌド修正の数を枛らすこずができたす。 確かに、IE8の曎新の問題ず私たち自身の経隓の䞡方が、 叀いバグの凊理が私たちの最倧の問題の1぀であるこずを瀺唆しおいるこずに泚意しおください。 私たちは間違ったこずをしたした、そしお、りェブサむトもそれに応じお間違ったものを埗たした。 ブラりザを修正したしたが、 World Wide Webは叀い間違いを決しお忘れたせん 。



browser.jsを䜿甚するメカニズムの違いは䜕ですか バグが修正されたブラりザの新しいバヌゞョンをリリヌスするず、browser.jsコヌドの察応する郚分は目立たないものずしおマヌクされたす。 browser.jsで動䜜しおいたものは、ブラりザヌの修正により自動的に動䜜するようになり、ナヌザヌずWeb開発者にずっおOperaの曎新プロセスがよりスムヌズになり、私たちにずっおもずっず簡単になりたした。 時には、倧西掋党䜓のIE8開発チヌムのvy望さえ感じおいるようです。



もう1぀の興味深い点は、ブラりザに新しい暙準のサポヌトを最小限の問題で远加できるこずです。 たずえば、ナヌザヌ名フィヌルドに実際に<input required>



ないために、HTML5仕様の<input required>



タグがBarnesNobleぞのログむンプロセスを䞭断した堎合、「アカりントの䜜成」ボタンをクリックした時点で、たず修正を適甚できたす登録が成功し、仕様゚ディタヌず䌚っお、新しいテクノロゞヌを既存のむンタヌネットずより互換性のあるものにする方法に぀いお、コヌヒヌを飲みながら話し合いたす。



透明性



圓初から、䞻な問題の1぀は、調敎によっおWeb開発者がコヌド内の゚ラヌを怜玢しお修正できないようにするこずでした。 さらに、この方法では、りェブサむトが既に修正されおいる間、調敎を維持し続けるこずにより、゚ラヌの出珟に貢献するこずさえできたす。



最倧限の透明性を確保するために、すべおの修正が文曞化されたす 。たた、ファむルをできるだけ読みやすく、コメントを付けた状態に保぀ようにしたす圓然、ダりンロヌドしたデヌタの党䜓サむズを損なうこずはありたせん。 さらに、行われた各調敎はOpera゚ラヌコン゜ヌルに衚瀺され、䜕が起こっおいるかをナヌザヌに知らせたす。



カバレッゞ



りェブサむトの調敎はクロスプラットフォヌムのタスクです。 しかし、この甚語は物事の実際の状態をあたりにも匱く説明しおいたす。 ニンテンドヌWii甚に Webサむトを調敎しおいるこずをご存知ですか DSiはどうですか Windows Mobile、Symbian、BREW、およびArchosポヌタブルメディアプレヌダヌ䞊のOperaの堎合 ゞョヌクに加えお、 Opera Miniの修正も適甚したす



-HotmailおよびYahooメヌルメッセヌゞを䜜成するために耇雑なフォヌマットで線集する必芁がある堎合、ハヌドりェア機胜が非垞に限られおいるデバむスでもサポヌトをシミュレヌトできたす。

-Facebookでファンシヌアニメヌションを凊理するのにOpera Miniサヌバヌで時間がかかりすぎる堎合-クラむアントにコンテンツを送信できるのは、すべおが「吐き出された」堎合のみです-単玔にトリミングしお、少なくずも゚ンドナヌザヌが芁求するFacebookサヌビスの最も重芁な機胜を完了できたす



これは野心的な䜜業のように芋えたすが、おそらく倖から芋たずきよりもさらに野心的です。 デバむスずプラットフォヌムには非垞に異なる芁件があり、特定の問題がたくさんありたす。 䟋



-Wiiゲヌムコン゜ヌルでは、読みやすさを維持するために最小フォントサむズを制限する必芁がありたすが、倚くの堎合、これはWebペヌゞ芁玠の幅、レむアりト、および䜍眮の予枬できない倉曎に぀ながり、デスクトップブラりザヌではたったく䞍可胜な結果に぀ながりたす。 そのため、芁玠の特性が厳しすぎる耇数のWebサむトを調敎しお、わずかに倧きいサむズのフォントを䜿甚する機胜を維持しおいたす。

-Wiiや倚くの携垯電話でオンスクリヌンキヌボヌドを䜿甚するず、フォヌムフィヌルドにテキストを入力する必芁があるたびにブラりザりィンドりのサむズを倉曎するこずになりたす-キヌボヌドにはディスプレむにもある皋床のスペヌスが必芁です。 しかし、たずえば、 ブリティッシュ゚アりェむズの Webサむトでは、りィンドりのサむズが倉曎されるたびにチェックアりトペヌゞが曎新されるため、仮想キヌボヌドを䜿甚しおチケットを賌入するのは簡単な䜜業ではありたせん...

-...たたはフランスのeBayがキヌストロヌクをカりントしお䞍正でないこずを確認し、「Repeat E-mail」登録フォヌムに電子メヌルアドレスを挿入しようずするず、オンスクリヌンキヌボヌドでも機胜したせん。 それらのほずんどは、単にキヌボヌドむベントをサポヌトしおいたせん。 eBayに行こう-本圓にやった。 冗談じゃない-本圓に カットアンドペヌスト操䜜が原則ずしお䞍可胜なデバむス䞊..



このようなさたざたな問題に察凊する堎合、browser.jsの真の魔法の可胜性はさらに明癜になりたす。



むンフラ



このすべおの経枈をサポヌトするために、クラむアントの芁求に応じお目的のファむルを正確に送信するいく぀かの小さなサヌバヌがありたす。 調敎のデヌタベヌスず、これらの調敎を適甚できるプラットフォヌムずデバむスに関するレコヌドを含むメタデヌタのセットがありたす。 しかし、Webサむトを垞にチェックする特別な「スパむりェア」スクリプトもあるこずをご存知でしたか修正しおいるバグはありたすか そのような奇跡が起こった堎合、それに぀いお知っおおくずいいでしょう。 ゎミ箱に察する次の「廃止された」調敎を削陀するたびに䌎うシステムサりンドが気に入っおいたす。



匱点



時間



非垞に倚くの機䌚、非垞に短い時間...りェブサむトの分析ず調敎には倚くの時間がかかりたす。 2,400を超える゚ントリを含むIE8ず互換性のないWebサむトの印象的なリストに近づきさえしたせん実際、このリストの調査はDeja Vuを思い出させたす。䜕らかの理由で連絡しおください。



しかし、私たちのリストは著しく短くなっおいたす-幞いなこずに 私たちのりェブサむト調敎システムに必芁な詳现レベルでの技術分析は非垞に時間がかかる可胜性があるため、リストをIEよりもはるかに小さく保぀こずができ、その結果、より焊点を合わせるこずができるこずを願っおいたす調敎の品質ぞの泚意。 しかし、より広い範囲をカバヌする準備ができおいたす。デヌタベヌスには600を超える゚ントリがあり、ただ十分なスペヌスがありたす。誀っお衚瀺されたWebサむトに関するメッセヌゞをお埅ちしおいたす 。



性胜



私はちょうど新しい調敎の䜙地があるず蚀った。 しかし、ブラりザのパフォヌマンスに倧きな圱響を䞎える前に、どのような芏暡を達成できたすか



明らかに、かなりの期間、デヌタベヌスの成長を維持できたす。 最近の実隓のいく぀かは、最倧10,000の異なるWebサむトを凊理できるこずを瀺しおおり、Operaの速床はわずか数パヌセントしか䜎䞋しおいたせん。 たた、レコヌドのデヌタベヌスが10,000に達する頃には、より効率的なコンピュヌタヌをすでに賌入しおいるず思いたす...



安党性



安党ですか りむルスたたは「悪意のある」サヌバヌがbrowser.jsを改ざんしお、Operaの䜿甚を即座に制埡できたすか



短い答えはノヌです。



より詳现な答えは、適切な保護察策を講じなければ可胜性があるずいうこずですが、実際には非垞に積極的に察策を講じおいたす。 各ファむルには電子眲名が含たれおおり、Operaはファむルが本物で倉曎されおいないかどうかを確認したす。 そのような眲名を停造するこずは非垞に困難です。 したがっお、りむルスたたは「悪意のある」サヌバヌがファむルを倉曎するずすぐに、Operaはすぐにそのファむルの䜿甚を停止し、サヌバヌから最新バヌゞョンをダりンロヌドしたす。



結論



browser.jsで䜜業するこずで私に最も衝撃を䞎えたものの1぀は、World Wide Webの倉化の速さです。 特定のWebサむトに现心の泚意を払うず、䞀般的にむンタヌネットが向䞊しおいるこずがわかりたす。 そしお恐らくあなたの恐れに反しお、私たちはしばしば修正をリリヌスし、Operaブラりザに修正し、より忠実になっおいるりェブサむトを芋たす



これは、 サむト調敎が機胜するこずを意味したす 。 これは、互換性を改善し、ナヌザヌにブラりザの本圓の遞択を提䟛するため、そしお-どんなに玠晎らしい音でも-盎接的な圱響ずしお、りェブ開発者が圌らのりェブサむトがOperaおよび倚くの他のブラりザ。



未来ぞようこそ- 暙準、オヌプンテクノロゞヌ、Webサむト調敎から䜜成され、䜿甚されおいたす。



著者に぀いお

Hallvord RM Steenは、品質保蚌、テスト、りェブ互換性に関しおOperaの䞭栞チヌムず連携しおいたす。 圌はbrowser.jsファむルの開発者であり、小さなタむプミスで䞖界䞭のすべおのサむトを壊すこずができたす。



謝蟞

この翻蚳はmelnichuckずarestovのおかげで可胜になりたした



All Articles