是否可以使用jquery ajax更新不同页面上的元素?

时间:2015-08-24 20:39:25

标签: php jquery ajax

我有一个用户提交数据的页面。

/user1.php

$.ajax({
    type: 'POST',
    url:  '/myDB.php',
    data: {
         'val' : val
    },
    dataType : 'json',
    success: function (response) {
         // update user1.php
    }
});

我使用jQuery $.ajax()将此数据发布到第二页,我将数据存储到db中,如果成功则将响应返回 user.php

/myDB.php

$userData = $_POST['userData'];    

// STORE DATA IN DB

echo '{ "status": "Ok" }';

// update user2.php > $('#em').text($userData);

是否可以使用jQuery更新第二个用户查看的页面上的其他元素?

/user2.php 

<div id="em"></div>

我知道我可以.load()来自另一个页面的部分内容,只是想知道是否存在反向流动的可能性。

由于

1 个答案:

答案 0 :(得分:1)

最好的方法是检查是否有任何变化:

<强> checkupdate.php

<?php

// Check database

$res = Array('changed' => false)

if ($data = $res->fetch();){
    $res['changed'] = true;
    $res['data'] = $data;
}

exit(json_encode($res));

在第二页上:

function checkupdate(){
    $.ajax({
        type: 'POST',
        url:  '/checkupdate.php',
        data: {
             'val' : val
        },
        dataType : 'json',
        success: function (response) {
            if (response.changed){
               // do whatever with reponse.data
            }
        },
        error: function(e){
           // Do whatever when error
           console.log(e);
        },
        complete: function(){
        // Always when finish request do again
        setTimeout(checkupdate, 5);

        }
    });
}

就像Barmar所说,你可以使用套接字,但这不是最好的方法。