【问题标题】:Communication between PHP and JS [closed]PHP和JS之间的通信[关闭]
【发布时间】:2013-03-25 08:21:57
【问题描述】:

我有一个导入朋友按钮,单击该按钮时会从 Facebook 加载朋友,这是通过对 php 文件的发布请求完成的。

现在如何创建实时进度条?

我知道如何自己制作进度条,只是不能 100% 确定如何在php 和页面之间以简单的方式进行通信。

【问题讨论】:

  • phpjs 基本上是 AJAX。
  • 虽然你可以在 php 脚本运行时这样做吗?
  • 我需要在每个循环中向 js 脚本发送通知。
  • 你可以做一个加载图形,比如纺车等。
  • 是的,虽然我希望有一个进度条,每秒钟左右更新一次。友元导入最多可能需要 60 秒。

标签: php javascript jquery sockets


【解决方案1】:

在这种情况下,您应该考虑服务器发送的事件。它不需要特殊的服务器。它唯一需要的是可以服务 HTTP 请求的服务器,这是 Web 服务器所必需的。

数据将在长期保持的 HTTP 连接中发送。植入 PHP 非常容易。您只需要一个循环,以特定格式回显数据并刷新数据。

服务器发送的事件是服务器和客户端之间的一种单向通信,因此在您的情况下很有用。

为了简化开发,我为服务器发送的事件创建了一个 PHP 库。可以考虑使用:github.com/licson0729/libSSE-php

希望我的信息可以帮助到你。

【讨论】:

    【解决方案2】:

    将所有好友加载到 JavaScript 数组中。

    function import_friends(friend_array)
    {
        var response=0;
        var xmlhttp;
        if(window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                response += xmlhttp.responseText;
                update_the_progress_bar(response,friend_array.length);
            }
        }
        for(i=0; i<friend_array.length; i++)
        {
         xmlhttp.open("post","url",true);
         xmlhttp.send(friend_array[i]);
        }
    }
    

    您从要传递给朋友的 URL 的响应应该是“1”表示成功。那么就在update函数中进行简单的划分来更新bar。

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2014-01-17
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多