每秒刷新PHP代码

时间:2015-10-26 22:50:16

标签: javascript php jquery iframe

我在iframe中有一个登录屏幕,当有人登录iframe时,应该在主页面上弹出一个菜单按钮。

这是我现在的代码:

<?php   if (isset($player)){
                        echo'
            <ul class="nav-header pull-right">
                <li>
                    <div class="btn-group">
                        <button class="btn btn-default btn-image dropdown-toggle" data-toggle="dropdown" type="button">
                            <img src="assets/img/avatars/avatar10.jpg" alt="Avatar">
                            <span class="caret"></span>
                        </button>
                        <ul class="dropdown-menu dropdown-menu-right">
                            <li class="dropdown-header">Profile</li>
                            <li>
                                <a tabindex="-1" href="base_pages_profile.html">
                                    <i class="si si-user pull-right"></i>
                                    <span class="badge badge-success pull-right"></span>Profile
                                </a>
                            </li>
                            <li>
                                <a tabindex="-1" href="javascript:void(0)">
                                    <i class="si si-settings pull-right"></i>Settings
                                </a>
                            </li>
                            <li class="divider"></li>
                            <li class="dropdown-header">Actions</li>
                            <li>
                                <a tabindex="-1" href="logout.php">
                                    <i class="si si-logout pull-right"></i>Log out
                                </a>
                            </li>
                        </ul>
                    </div>
                </li>
            </ul>'; } ?>
只要有人登录,

isset($ player)就会变为真,但只有当您刷新页面时,此代码才有效,如果有人登录,我该如何创建此代码刷新的内容?

1 个答案:

答案 0 :(得分:1)

你需要使用AJAX;使用通常称为Short Polling的技术。您可以做的是,使用setInterval,您可以每秒触发一次AJAX请求并获取新代码。服务器处理的每一秒都太多了,所以也要照顾它:

setInterval(function () {
  $("#divId").load("/path/to/php/response.php");
}, 1000);

1000是一秒,因为它是以毫秒为单位测量的。

另一种技术是向服务器发送请求,该请求将创建一段保持打开一段时间的请求。如果在此间隔期间收到更新,则响应将发送到客户端,否则连接将终止。这种技术称为Long Polling。在代码中它看起来像:

(function poll() {
   setTimeout(function() {
     $.ajax({ url: "server", success: function(data) {
        sales.setValue(data.value);
     }, dataType: "json", complete: poll });
   }, 30000);
})();

但是,有时候,每隔10秒钟对服务器进行一次锤击可能不是伟大的事情。那么,在这些绝望的时代,我们会打电话给谁呢? 套接字流。客户端向服务器发送请求。该请求与服务器创建一个不确定的流,该服务器知道在收到更新的情况下向客户端发送响应。

进一步阅读: