工場にXMLHttpRequestを置く

管理ランタイムの行動コード

  

問題を効果的に管理するとランタイム動作のコードをデバッグします。理論は、evalキーワードを使用する、または動的に機能を割り当てるオブジェクトのプロパティに動的なプログラミングの大きな部分を占めています。動的プログラミングは、実行時、またはで動作を示すコードが含ま 行動コード。行動のコードは、悪いアイディアではないが、それより複雑なデバッグのために作るはありません。行動のコードでの主な問題は、デバッガのアイデアをデバッグして何のソースです。ソリューションがここでは簡単にしている考えることができますいくつかの解決方法があります:

•実装テスト駆動開発と実行で増分の方法で深さをテスト。それ以外のエラーコードの部分では問題がないかを生成する原因となります行う。この資料では、レシピのテストは、どのようにコードの動作を理解することを検査することができます開発テクニックを駆動します。私は非常に場合は、すでに行われていないがある場合は、現在どのようにコードが書かれている探求する時間を割いてお勧めします。これらのファイルを見て、例えば:/ウェブサイト/ルート/ ajaxrecipes / javascriptに/ conventions.html /ウェブサイト/ルート/ ajaxrecipes / javascriptに/ proxy.html、および/ウェブサイト/ルート/ ajaxrecipes / javascriptに/ variablebehavior.html。

•生成されるHTMLページのテキストボックスに投棄されているバッファへのコードです。ダンプされたコードを持って貼り付け、HTMLページに実行します。ダンプされたコードをデバッグすることができるのエラーが含まれます。場合と永続的な問題が発生しているソースを見つけることができませんこのソリューションでは唯一のお勧めは、です。

•使用して、単純な原理。動的なようにし、生成されたコードを他の誰かが、私はあまりにも巧妙なコードから滞在し、一度にあまりにも多くの問題を解決しようとすると、例えば、私は通常、冗長なコードを記述する1つのステートメントに複数の演算子を組み合わせていない限り。

•使用して、デバッガです。 MozillaとFirefoxはかなりまともなデバッガがあり、それらを使用する必要があります。は、Microsoft Visual Studio 2005では、非常に複雑なJavaScriptコードをデバッグすることが可能です。

置く XMLHttpRequestを 工場に

あなたが工場出荷時にXMLHttpRequestを配置したい。理論ときにXMLHttpRequestを使用して、この問題はどのようにXMLHttpRequestのインスタンスを作成することです。各ブラウザはXMLHttpRequestのインスタンスを別の方法があります。ここで、Mozillaや他のほとんどのブラウザを使用する(このコードは、Internet Explorerのバージョン7から始まるように動作します)です:ヴァールXMLHTTPを=新しいXMLHttpRequestを();現在7の前にInternet Explorerのバージョンについては、次のソースコードを使用します:ヴァールXMLHTTPを=新しいActiveXObjectなどが、ブラウザに応じて専門分野がご利用いただけます('Microsoft.XMLHTTP'); Microsoft.XMLHTTPバッファの一般的な識別子です。ソリューションの問題への答えは、XMLHttpRequestを別のブラウザ上でさまざまなテクニックを使用する必要があるインスタンスを作成することです。 XMLHttpRequestオブジェクトのインスタンスを作成できるようにするには、抽象化を作成する必要があります。抽象化をするしないの問題を選択し、クラスや関数が、ことができる。どのような問題は、抽象化を作成したりFactoryパターンの実装では工場pattern.1実装されると、主な課題は、ブラウザとし、適切なXMLHttpRequestのインスタンスを使用してスクリプトを実行して識別することです。ライブラリjsolait、Prototypeは、ヤフー!パターン、およびDojo Toolkitはすべてが同じようにコーディングされてXMLHttpRequestを抽象化を実装します。どのようにこれはYahooからは、次のソースコードを考えてコーディングされての要点を説明するために!デザインパターンライブラリ(http://developer.yahoo.com/ypatterns)。

createXhrObject:関数()transactionId(ヴァールOBJのは、http;(/ /インスタンスXMLHttpRequestの非IEブラウザで試してみてhttpに割り当てます。 のhttp =新しいXMLHttpRequestを();/ /のhttpおよびidプロパティ=(コーン:は、http、TIDを:transactionId);)キャッチobjにリテラルオブジェクト(電子)(用(ヴァール= 0;私はのhttp =新しいActiveXObject(this._msxml_progid [私]);/ /のhttpおよびidプロパティ=(コーン:は、http、TIDを:transactionId);)キャッチobjにリテラルオブジェクト(オ)()))最後に(戻りOBJの;))

インスタンス化しようとcatchブロックは、一連のラップされます。試してみて、JavaScriptでcatchブロックで例外がブロックされます。抽象化は、このフォームの背後にある考え方は、いくつかのソースコードを実行しようと場合は、何か他の操作は失敗します。次の手順は、ソースコード内に行われている:

1。 最初の例外ブロックを入力します。

2。 XMLHttpRequestのインスタンスは、新しいキーワードを使用して実行します。

3。 場合は、インスタンスの作品の場合、finallyブロックに達している。

4場合は、インスタンス化が失敗すると、例外が生成され、catchブロックは、ループを開始します。

5。 ループの別の識別子は、this._msxml_progidデータメンバによって参照を使用してInternet ExplorerのXMLHttpRequestのインスタンスを作成しようとします。

6。 場合は、XMLHttpRequestオブジェクトをインスタンス化することはできませんが、空のcatchブロックは、例外をキャプチャします。

7。 関係なく、何が発生すると、finallyブロックが実行されると、オブジェクトのインスタンスを返しますobj変数に格納します。抽象化の主なアイデアは、コードを実行するとれている場合は、ブラウザの機能をサポートしない場合、例外が生成されます。例外が捕捉され、別のインスタンスのシーケンスが開始されます。これは何のコードについて教えてトラブルは何をサポートして把握しようとするのではなく、JavaScriptの例外を使用しています。として実装では、例外の例amajorityが生成されます立っている。これは、このマニュアルの執筆の時間のためには、Internet Explorerの80%以上の市場シェアをしています。これは、動作しないことになる新しいキーワードを使ってXMLHttpRequestのインスタンスを作成ししようとすると例外が生成されます。XMLHttpRequestのインスタンスの代替方法は、ライブラリJaxsonによって、などの記事で説明されることを意味 Ajaxのアクションで (マニング、2005年)、 専門家のAjax (Wrox、2006)。テクニックに示すように Ajaxのアクションで perfect2ですJaxsonによって次のように実装されます。

 ソース: /サイト/ルート/スクリプト/ communications.js場合(window.ActiveXObject)(FactoryXMLHttpRequest =関数()(新しいActiveXObjectを返す("Microsoft.XMLHTTP")を;)以外の場合(window.XMLHttpRequest)(FactoryXMLHttpRequest =関数()(戻り新しいXMLHttpRequestを();))("XMLHttpRequestを")をインスタンス化できませんでした新しいエラーを投げる;

注意してください Internet Explorerでは、ソースコードの単一の行には、XMLHttpRequestオブジェクトをインスタンス化するために使用されます。対照的に、他のライブラリは複数のインスタンスの使用を試みます。これは、MSDNドキュメントごと、それは、Internet Explorerのバージョン6でMicrosoft.XMLHTTP文字列を使用すると、以下が必要ですこれらの複数のインスタンス化しようとする必要はありません。際はXMLHttpRequestオブジェクトのインスタンスは、次の点に留意する:

ため、人が来てしばらくの間、Internet Explorerの古いバージョンを使用し続けます•あなたの抽象化を使用する必要があります。したがって、あなたはまだ必要なインスタンス化技術がどのを使用して把握する必要があります。

•あなたが期待される機能をテストするための例外を使用しないでください。ので、例外が発生すると考え隠されることなく行う。

より良いアプローチ•機能を使用してテストするにはXMLHttpRequestのインスタンスをインスタンス化されます。

場合は、定義済みのインスタンスを使用する•全てのは、によると、Yahoo!などを使用して、例外!デザインパターンのライブラリは、世界の終わりではない。このレシピのポイントは、可能な限り使用して、より良いアプローチを提案することです。

記事は、ソニアLandeを提出


免責事項:弊社のウェブサイトは、この資料の内容については責任を負いません。 Webarticles無料の情報リソースです。
重要: この記事は、"工場"の自動ソフトウェアによって翻訳されたにXMLHttpRequestを置く。大変申し訳ございませんが発生した可能性があります任意のスペルミスを感じている。お客様のご理解いただき、ありがとうございます。


Online: 221 users browsing the articles directory   


  

|