2012-01-10 14 views
2

Progamコントロールがサーバー上にあり、私はリラードを行う必要があります。私は、PHPのコマンドを使用することができます。メタ・リポートとリロード()|サーバーが実行され、クライアントが実行される

echo '<meta http-equiv="refresh" content="0">' 

または私は、使用するためのベストプラクティスや優れている

window.location.reload(); 

をリロードフラグを設定して、クライアントに制御を渡すとJavaScriptのコマンドを使用することができますスピードの条件?

私は、クライアント側にロジックがないため、PHPのバージョンが少し速くなると思っています。ブラウザはヘッダを受け取り、リロードします。

私は無効にされたJavaScriptに関心がありません。

+0

Jakobは答えがうまくいっていますが、オプション1を使うべきだと思います。私の意見では重要な質問があります.Javascriptが無効になっているとどうなりますか?オプションb 2の場合 - >何もありません。 – fab

答えて

5

ここの両方の例は、クライアントサイドです。

例で

  1. あなたは、単に効果的にブラウザがリフレッシュを認識している<META>に基づいてリフレッシュするために文書を伝える、PHPは、文書ヘッダの<META>を含むためだけの責任です。より洗練された方法は実際に行うことですheader("refresh:0;url=wherever.php");
  2. ここでは、単にJAVASCRIPTを使用してリロードします。

彼らは両方とも仕事をします。リフレッシュがパラメータに基づいているため、速度は問題になりません(リロード/リフレッシュのタイミング)

+0

PHPはサーバーサイドコードで、JavaScriptはクライアントサイドコードです。あなたが作っているのは、PHPのリフレッシュであると思うのですが...ページがヘッダー付きで送られてこない...それはリフレッシュを行うように指示するコマンドです...技術的にはPHPのサーバから始まりますrefresh..andコントロールは、JavaScriptのリロード時にクライアントから発生します。 –

+0

@TheAllFoo _technically_あなたのブラウザに送信するすべてのコード(JavaScriptを含む)は、サーバーから発生します;-)しかし、2つの異なる命令を使用して、どちらの場合でもリロードするブラウザです。 – maksimov

+0

...なぜ私は質問しました...コントロールがサーバー側にあると...リロードをしたいのです...私はページを送るだけではありません...私はコマンドを送信する必要がありますクライアントに...そしてそこからページロードが開始されます...これは効率的ではないようです...あなたがすでにサーバーにいて、リロードをしたいと思っているならば...ちょうどページを送信しますか? –

3

唯一の違いは、javascriptが無効になっている場合、最初のオプションが機能することです。

1

PHPソリューションが優れていると私は感じていますが、私が言うように、それは他の何よりも感情です。 私の推論は:

ロジックを1つの場所に置くだけです(フラグを設定してからjavascriptでチェックするのではなく)。

あなたはきれいなjavascriptコードを取得します。

JavaScriptが無効になっていると、それでも機能します(気にしている場合)。

現代のブラウザではスピードの違いは無視できると思いますが、それを裏付けるものは何もありません。

2

JavaScriptによる「メタリフレッシュ」と「window.location.reload()」の両方がクライアント側です。ブラウザがリフレッシュを処理すると、ブラウザを完全に実装して実装することになります。

メタリフレッシュ方法はJavaScriptを必要としませんが、それ以上の制御はありません。 PHPを使用すると、読み込み時にHTMLを作成する必要があります。

JavaScript経由で、いつでも読み込みを開始できます。 JavaScriptを使って "メタリフレッシュ"ヘッダーを作成することもできます。

信頼できる方法は、メタリフレッシュヘッダーを作成することですが、JavaScriptが有効になっている場合は、JavaScript経由でヘッダーを削除し、JavaScript経由で本当に必要なときに再読み込みを行います。

関連する問題