iframeを非同期呼び出しを行うための輸送に適したことができるので負荷の原因とコンテンツページ全体をリロードせずに、新たな要素のiframe javascriptを使用して作成することができます。 うまくiframeの属性については、フォームを使用することができ、 1つの目標として、再読み込みしてiframeの代わりに、ページ全体;このアプローチにより、大量のデータを使用してサーバに送られるために投稿します。
|
|
iframeを使用して1つの困難である交通機関としては、われわれは、ページの読み込みのhtmlする必要があり、それを持つ必要があるのjavascript onloadイベントハンドラの親を教えたときに終了する文書を読み込みます。 これを実現するために行われたすべてのリクエスト軍iframeを前に設計されたページをiframeの要求に対処します。 (コードだけをつかむことはできませんxmlファイルの道xmlhttprequestできるようにしています。 )
iframeを注意して使用するには、さらに数の制限がない場合:
iframeをして1つの利点は、それには人を超えるxmlhttprequest使用してファイルをアップロードすることができます。 ブラウザのセキュリティ制限のために、ユーザーの行動だけで、のような形をクリックすると、交流することができたファイルには、ユーザーのマシンにします。 これによりフォームをターゲットとするだけでiframeのオプションをしていないファイルのアップロードを含むページをリロードすると、通常の投稿フォームにサイクルします。 しかし、理由は何もない秋に戻ることはできませんiframeを使用してファイルをアップロードする場合と、残りのxmlhttprequest ajaxのリクエストします。 リモートスクリプトを作成しない場合は、スタイルajaxの要求は、労働の限界付近iframeを追加するには、かなりの量の仕事をしてajaxの開発プロジェクトです。
古いブラウザの互換性を最大限を取得することもできるだけ追加すると、 htmlのiframeのサイズを0x0とやっています。 (それを隠すことはできませんだけで、またはいくつかのブラウザでロードされませんしてください。 )しかし、この柔軟なアプローチではありませんので、必要でしょう。動的にフレームを作成します。 すべてのdocument.createelement古いブラウザをサポートしませんが、通常はブラウザをサポートせずに動的な機能が欠如して必要に応じてその他のデータを使用するあなたは読み込みので、最高のサポートを提供することで静的なhtmlのバージョンのページを開きます。 は、次の例では、 iframeを使用して作成さinnerhtmlはシンプルなので、よりdomメソッドを使用して作成します。 ただし、それで作成される可能性もあるdocument.createelementと同じように、では、 divを継続的に追加されている:
var 1 = rdiv document.createelement ( '事業' ) ;
2 rdiv.id = ' remotingdiv ' ;
スタイルvar 3 = '国境: 0 ;幅: 0 ;高さ: 0 ; ' ;
4 rdiv.innerhtml = " " ;
6
7 document.body.appendchild ( rdiv ) ;
のみを行う場合は、 getリクエストは、値を変更することができのiframeのsrcの財産ではなく、後は、ターゲットを絞ったフォームを使用する必要があります。 取得するための良い解決策ではありませんajaxのリクエストに対して2つの理由:のみ送信することができ、限られた量のデータ(金額に応じて変更して、ブラウザ) 、および取得することができキャッシュおよび/またはプロキシサーバープリインストールされるので、ありませんそれを使用したいなどのアクションを実行するデータベースを更新しています。
フォームを使って、 iframeのは簡単です。 フォームの属性を設定するだけでの目標を達成する、とのフォームを送信するときに、その結果のiframeロードします。 次の例は、フォームを作成するとの目標を設定し、初期の段階で、 iframeを創った"隠されたiframeを作成する"セクションの記事:
1 rdiv.form = document.createelement ( 'フォーム' ) ;
2 rdiv.form.setattribute ( ' id 'を、 idを+ ' remotingform ' ) ;
3 rdiv.form.setattribute ( 'アクション' 、のurl ) ;
4 rdiv.form.setattribute ( 'ターゲット' 、のid ) ;
rdiv.form.targetのid = 5 ;
6 rdiv.form.setattribute ( '法' 、 '投稿' ) ;
7 rdiv.form.innerhtml = ' 8のid = " ' +のid + 'データ" > " ;
しかないことを知ってのコンテンツのiframeはロードして、コンテンツページでは、いくつかのjavascriptを実行することを通知し、親のページでのiframeが埋め込まれました。 最も簡単な方法は、これを行うには、 onloadイベントハンドラを設定して現在の文書を読み込みます。 このような制限の手段を使用することはできませんiframeのように任意の内容を読み込むことができxmlhttprequestています。 しかし、それはまだ有用なケースでは、 1つのページには、すでにサーバーにajaxのゲートウェイとして使われています。 ここでは、例のonload :
<体onload = " parent.document.callback (結果) " >
完全な例では、 iframeを要求してajaxの2つ含まれています。 最初の作品は、クライアント側のコードを作成し、フォームのiframeます。 2つ目のピースは、サーバーサイドのコードは、いくつかのデータを送信する準備をすることに戻るの親文書のonloadイベントハンドラで行います。
最初の部分の例(リスト1 )は、 javascriptのコードは、単純なhtmlファイルです。 このページには、テストに使用され;アラートだけで、コールバック関数の内容が表示されます。 第二部の例(リスト2 )は、単純なphpスクリプトで、これまでのデータを送信してからの投稿に戻ると、親ドキュメントをご覧ください。 有用なシステムを作るには、いくつかに含めることもでき余分な変数の形で、これは何をすべきか教えphpのコードをアップロードしたデータ、またはロジックを直接入れることができ、スクリプトを使用すると、別のページを目標各タスクを達成したいと思った。
リスティング1 。 iframeを使用してリクエストを作りにajax
| 1 2 3 |