1

私はjqueryとajaxが初めてです。

私のコードは基本的ping.phpに、fsockopen がサーバーを上下に表示する if else ステートメントを使用してスクリプトを呼び出し、呼び出すページをロードすると現在サーバー/サービスのダッシュボードを作成し、結果をタイルに上下に表示します。(merto.js を使用して学習し、操作します)

私が抱えている問題は、phpスクリプトを更新するために3秒ごとにdivを更新したいということです。

<div class="tiles red">
    <div class="live-tile" id="tile1">        
        <div><?php include"ping1.php";  ?></div>          
    </div>
</div>  

以下を使用してみましたが、何か間違ったことをしているに違いありません。

function startActivityRefresh() {
    timer = setInterval(function() {
        $("tile1").load('ping1.php');
    }, seconds*1)

私の実験はかなり単純化されていますが、単にページ全体を更新したくありません

数秒後にそれを殺すよりも、4220で利用可能なポートを作成してテストしました。

ありがとう

4

2 に答える 2

0

サーバーが起動しているか停止しているかを確認するだけの場合は、 .load() の代わりに小さな .ajax() (デモで使用される省略形 .get() ) 呼び出しを使用すること勧めます。

これが私のstatus.phpスクリプトの外観です。

<?php

// ping google.
$server = fsockopen('173.194.46.64', '80'); 

if ($server) { 
    echo 'Online';
    fclose($server); 
} else 
    echo 'Offline';

私はグーグルにpingします。IPをサーバーに変更します。

ここに私のajax呼び出しがどのように見えるかがあります

function checkServerStatus() {
    var status = $('#tile1');   // your element

    if (window.console && window.console.log)
        console.log('Checking server for status.');

    $.ajaxSetup({
        cache: false
    });

    $.get('status.php')
    .done(function (e) {
        // let's suppose "e" will return "Online" or "Offline"

        // remove online and offline classes
        status.removeClass('status-offline status-online');

        // add a class if offline or online.
        switch (e) {
            case 'Online':
                status.addClass('status-online');
                break;
            case 'Offline':
                status.addClass('status-offline');
                break;
        }

        // set status text
        status.text(e);

        // check status every 5 seconds
        setTimeout(function () {
            checkServerStatus();
        }, 5000);
    })
    .fail(function (e) {
        if (window.console && window.console.log) console.log(e);
    });
}

// let's rock!
checkServerStatus();
于 2013-10-26T20:45:39.993 に答える
0

でIDを定義しました<div class="live-tile" id="tile1">

必要なIDで要素を取得し、必要なクラスで要素$("tile1")を取得するのは間違っています#.

$("#tile1").load('ping1.php')

.load()には url が必要です リクエストの送信先の URL を含む文字列 $("#tile1").load(' your url to ping1.php')

于 2013-10-26T19:34:35.747 に答える