0

だから、私はここで少し混乱しています。

長期的には、ユーザーが更新することなく更新したいリストがあるため、ajax または HTML5 SSE にゆっくりと進んでいます。しかし、ここでは簡単な手順を説明します。リストがここから読み取っているファイルが、別のコンピューターがエントリをプラグインして変更されたことを通知する単純な関数から始めます。

コード:

<script type='text/javascript'>
function CheckForChange(){
    alert("<?echo (count($listArray)) . ' and ' . count(file($filename_noformat))?>");
}

setInterval("CheckForChange()", 7000);
</script>

listArray は、ページが更新されたときにページに表示されるリストを保持する PHP 変数です。テキスト ファイルから 1 行ずつ読み取ります (後でデータベースへの移行に取り組んでいます)。PHP 変数は、ページが読み込まれたときにのみ実行できるためです。 、PHP は、PHP が実行されたときにテキスト ファイルにあったものだけを反映します。

しかし、Javascript と setInterval 関数を使用すると、PHP を実行して、その関数が実行された時点 (7 秒ごと) にテキスト ファイルの内容を確認できませんか? そうではないので、理由がわかりません。

携帯電話のリストに 4 番目の投稿を接続しようとすると、携帯電話のアラートが 4 と 4 に変わりますが、コンピューターはまだ 3 と 3 と表示されます。3 と 4 と表示させたいのです。

ありがとう

4

2 に答える 2

2

setInterval()サーバーベースの PHP ではなく、ページでローカルの JavaScript を実行します。ページをリロードせずにサーバーに何かを送信したい場合は、ajax 呼び出しを使用して実際に何かをサーバーに送信する必要があります。これにより、一部の PHP が実行される可能性があります。

ヒント - ブラウザで View/Source を見て、実際にページに何が表示されているかを確認してください。あなたのページには PHP がありません。ページが作成されると、PHP がサーバー上で 1 回実行されます。

于 2012-05-14T06:18:46.790 に答える
1

いいえ。

  1. PHP はサーバー上で実行され、テキストを出力します。
  2. サーバーはそのテキストをクライアント (ブラウザー) に送信します。
  3. 次に、ブラウザはそのテキストを HTML および JavaScript として解釈します。

PHP は 1 回だけ実行されます。生成された JavaScript 関数は繰り返し実行されますが、JavaScript の観点から見ると、その関数には実行可能なサーバー側コードではなく、文字列リテラルが含まれています。

PHP を実行したい場合は、新しい HTTP リクエストをサーバーに発行する必要があります。これには、ページをリロードするか、Ajax を使用する必要があります。

于 2012-05-14T06:19:07.797 に答える