2012-01-05 3 views
0

Ajax呼び出し後、私はWebページをリロードします。 2つのオプションがあります。リロードメソッド:responseTextとwindow.location.href(1回対2)

  1. ページをresponseTextとして送信し、document.write()を使用して画面に書き込むことができます。

  2. JavaScriptをコントロールに送信して、window.location.hrefを使用してWebページをリロードするように指示できます。

オプション1は、2回ではなく1回の往復しかかからないため、良いです。ただし、onloadイベントは、通常のリロードの場合と同じようにトリガされませんでした。

オプション2は、onloadイベントをトリガするため、有効です。

両方の世界のベストを得る方法はありますか?私はresponseTextを使用してページを送信したいと思いますが、それが受信されると新しいページのように読み込まれます。

サーバー上にいる(コントロールがサーバー上にある)、ページをリロードする必要があるときに、0.5トリップの代わりに1.5トリップを作成するのは意味がありません。これはAjaxの弱点ですか、それともそれをするのが辛いか分かりませんか?

関連:私はあなたを見るものから

Caching Issues

*

Similar Post

+0

あなたは達成しようとしていることに対してさらにコンテキストを提供できますか? –

+0

コンテキスト... Ajaxを使用しているすべてのケース..サーバは、リロードが必要であることを選択します... specefically ...ユーザがログインすると...使用がサインアップされるとき...ユーザーはログアウトします...これらは現在の3つの特殊なケースです。 –

+0

Ajaxのテクニックは、サーバーからブラウザにページ全体のコンテンツを送信するためのものではありません。サーバーから取得したデータに基づいてページの内容を少し変更することによって、既に読み込まれているページを更新することが意図されています。 –

答えて

1

OK]をクリックしたときに、ユーザー登録の新しいページをロードします。これを行う最善の方法は、ajaxがない場合です。ページが読み込まれ、onLoadイベントが発生すると、

しかし、あなたが使用した電子メールが既に使用されているかどうかを確認したい場合もあります。私がこれをやりたいのは、変数を作成してfalseにすることです。 ajax検証を実行するために、電子メール入力フィールドのonchangeイベントを使用します。電子メールが有効で有効な場合は、変数をtrueに設定します。ボタンのonsubmitイベントに関数を追加し、変数を返します。この方法では、電子メールが利用可能な場合にのみ、ユーザーはリダイレクトされます。

または:

あなたは関数にonLoadイベントからすべてのコードを移動することができます。また、応答テキストを使用してページを設定したときに呼び出すだけです。そして、 'document.write()'を使うのではなく、document.body.innerHTMLdocument.head.innerHTMLを使うことをお勧めします。

+0

あなたの最初の選択肢では、あなたはまだ2回の往復を行っています。これはおそらくどれだけ多くの人がそれをしていますが、まだ私の心の中では非効率です....オプション2はより多くの約束を保持します。私は自動的にonload関数を呼び出すため、うまくいきます。これは完璧に思えます.thanks! –

+0

私は最初の方法はほとんどの人がそれを行う方法だと思います。それは複数の旅行を取るが、あなたはページを "再読み込み"せずに結果を得る。 –

0

これにはAJAXを使用しないでください。JavaScriptはまったく使用しないでください(フォームの検証はもちろんありません)。あなたは普通の古いHTML 2.0を使うことができます。

<form action="processSignup.php" method="post" onsubmit="return isFormValid();"> 
    <!-- input fields here --> 
    <input type="submit" value="sign up" /> 
</form> 

私はPHPの専門家ではありませんが、サーバーコードは複雑ではありません。データベース呼び出しを行い、次のページにリダイレクトします。 正確には、AJAXの例と同じコードにすることができます。

これをもっと複雑にしないでください。これは1990年代初頭から使われてきた基本パターンです。 (それ以前は、私はそれまでにインターネットにアクセスできなかったとは確信していません)。ここでAJAXパターンを使用すると何も得られません。

+0

興味深い...非常に多くのオプション...すべて私が現在やっているものよりも優れています。 –

関連する問題