相关疑难解决方法(0)

如果没有客户端交互,GMail Chat如何能够发出AJAX请求?

所有HTTP响应都要求客户端启动它们,甚至是使用AJAX创建的响应.但是,GMail的聊天功能可以接收来自其他用户的消息,即使我只是坐在舒适的电脑椅上观看但没有与浏览器交互.他们是如何做到的呢?

ajax gmail chat comet

59
推荐指数
3
解决办法
1万
查看次数

使用setInterval()进行简单的连续轮询

对于需要刷新以设置间隔呈现给用户的部分数据的简单webapp,使用setInterval()从端点获取JSON而不是使用适当的轮询框架是否有任何缺点?

为了举例,我想说我每5秒刷新一次处理作业的状态.

javascript ajax polling setinterval

34
推荐指数
3
解决办法
3万
查看次数

如何实现Facebook通知?

我正在尝试实现类似Facebook的实时通知系统,以便在有人将其添加为朋友时通知用户,例如他们的帖子或帖子回复他们的评论.

所有的数据库和PHP部分都已完成,但我无法弄清楚如何像Facebook那样实现它.

每当有人喜欢/评论Facebook上的帖子时,屏幕左下角会出现淡蓝色框.只要有人点击按钮或在Facebook上发表评论,就会发生这种情况.我想知道我应该怎么做来实现这一点.

使用YUI或任何JavaScript框架,我可以在n几秒钟后查询数据库表以检查通知.这种方法太重了.

我想知道是否有任何服务器端模块或脚本可以完成,以便每当我的数据库表中有新的通知条目时,服务器将告诉该特定客户端.这样就可以完全避免从客户端到服务器的不必要的请求调用,并且系统可以有效地为一次有超过50,000个用户的网站工作.

我怎样才能做到这一点?

javascript php yui facebook

31
推荐指数
2
解决办法
3万
查看次数

使用JavaScript进行服务器轮询

对于需要快速刷新数据的应用程序,使用JavaScript轮询服务器的最佳做法是什么?我正在使用jQuery作为前端,使用Java Spring Framework作为后端.

刷新数据的示例可以是非常快速地(每1秒)更新的项目列表.

javascript ajax jquery polling

25
推荐指数
1
解决办法
2万
查看次数

虽然服务器发送事件的循环导致页面冻结

我目前正在进行一项使用Server-Sent Events接收消息的聊天.但是,我遇到了一个问题.服务器发送的事件从未连接并保持挂起状态,因为页面未加载.

例如:

<?php
    while(true) {
        echo "data: This is the message.";
        sleep(3);
        ob_flush();
        flush();
    }
?>
Run Code Online (Sandbox Code Playgroud)

我希望每隔3秒,"数据:这就是消息." 将被输出.相反,页面只是不加载.但是,对于服务器发送的事件,我需要这种行为.有没有办法来解决这个问题?

编辑:

完整代码:

<?php
   session_start();

    require "connect.php";
    require "user.php";

    session_write_close();

    echo $data["number"];

    header("Content-Type: text/event-stream\n\n");
    header('Cache-Control: no-cache');

    set_time_limit(1200);

    $store = new StdClass(); // STORE LATEST MESSAGES TO COMPARE TO NEW ONES
    $ms = 200; // REFRESH TIMING (in ms)
    $go = true; // MESSAGE CHANGED

    function formateNumber ($n) {
            $areaCode = substr($n, 0, 3);
            $part1 = substr($n, 3, 3);
            $part2 = substr($n, 6, …
Run Code Online (Sandbox Code Playgroud)

php server-sent-events

23
推荐指数
4
解决办法
4208
查看次数

Gmail上的传入邮件通知如何运作?

我想知道它是如何在Gmail中实现的,每次收到电子邮件时,邮件列表都会自动刷新.看起来服务器正在向浏览器发送某种事件,但它怎么可能呢?或者也许它很简单:浏览器每次让我们说2秒钟就向服务器询问新消息?但它可能会破坏性能......

有人有想法吗?

编辑:好的,如果这是简单的答案,他们如何管理性能?当我从其他帐户向Gmail帐户发送电子邮件时,视图几乎立即"刷新".你说的是一个返回true/false的简单函数,但它必须有一些逻辑(db连接或读取一些文件).他们如何管理它?


另请参阅:GMail Chat如何在没有客户端交互的情况下发出AJAX请求?

email events gmail

13
推荐指数
1
解决办法
1万
查看次数

Whatsapp,Viber之类的应用程序如何保留移动用户的踪迹?

我的意思是他们使用乒乓消息来获取用户连接信息吗?简而言之,他们如何知道在哪里发送即将到来的请求?

android ios

9
推荐指数
1
解决办法
6901
查看次数

jQuery Long Polling(使用PHP服务器端)

我在这里做了一个噩梦,所以任何帮助都将非常感激!首先,我将解释我要做的事情:

我正在尝试使用Yii框架在我的localhost MAMP服务器上实现如下所述的系统:https://stackoverflow.com/a/1086448/1034392.我有一个函数来检查数据库中是否有任何新通知 - 如果是,它会解析它们并且json对它们进行编码.我每隔5秒就有一个while循环调用此函数.

所以:转到/ user/unreadNotifications会触发以下内容

    Yii::log('test'); // to check it's getting called  

    $this->layout=false;

    header('Content-Type: application/json');

    // LONG POLLING 
    while (Yii::app()->user->getNotifications() == null) {
        sleep(5);
    }

    echo Yii::app()->user->getNotifications(); // prints out json if new notification

    Yii::app()->end();

    return;
Run Code Online (Sandbox Code Playgroud)

这很好用 - 去了浏览器中的链接并验证了json响应 - 一切都很好.

然后我尝试了各种各样的jQuery东西让它工作......我发现工作的唯一方法是使用$.ajax类型POST,但只有当有等待通知时(所以返回一些json).$.get或者$.post被"中止"(在firebug中显示)但是URL被调用(因为我可以看到日志文件被更新) - 奇怪.

我使用的原始设置$.get是:

        <script type="text/javascript">
            function notificationPoll() {
                $.get('<?php echo Yii::app()->createUrl('user/unreadNotifications') ?>','', function(result) {
                    $.each(result.events, function(events) {
                        alert('New Notification!');
                    });
                    notificationPoll();
                }, 'json');
            }
        </script>

        <script …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery json getjson

8
推荐指数
1
解决办法
3155
查看次数

jQuery AJAX检测slideUp/Down运动中的数据更改显示

我想为新闻门户建立一个评论系统.

我希望jQuery AJAX检测是否有人添加了评论数据,它会自动更新slideDown动作中添加的评论.

我怎样才能做到这一点?谢谢.

(注意:我使用ASP.NET作为服务器)

在此输入图像描述

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            $.ajax({
                url: 'WebForm1.aspx',
                success: function (data) {
                    $("#Urunler").html(data);
                }
            });
        });
    </script>
    <style>
        li
        {
            width: 100px;
            height: 30px;
            background: yellow;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>


        <ul id="Urunler" runat="server">

        </ul>


    </div>
    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是背后的代码,

using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {

        SqlConnection cnn = new …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net ajax jquery

0
推荐指数
2
解决办法
2355
查看次数

Facebook,Gmail,LinkedIn等网站和移动应用程序如何协同工作?

基本上,我是专业的PHP开发人员.我只有使用PHP开发网站的经验.我没有创建移动应用程序的经验.

我的组织希望建立一个网站(使用PHP)以及移动应用程序(在Android和iOS中),为某些社区创建社交网络,这将完全类似于Facebook网站和Facebook应用程序的功能.

但是我没有从哪里开始?怎么开始?我应该遵循什么方法?如何利用PHP来完成所有这些工作?

我想知道Facebook网站和Facebook应用程序如何协同工作?我想知道这种现象是什么,系统架构,原理,设计模式,技术和其他东西背后都在起作用?

我在我的笔记本电脑上使用Facebook网站,在Android智能手机上使用Facebook 应用程序

每当我在Facebook上收到任何通知时,它几乎会在Facebook网站和Facebook应用程序上同时得到通知.

此外,每当我更新我的状态或做任何活动,如回复或评论帖子,添加组更新,添加事件更新等,从Facebook网站,它立即反映到Facebook应用程序,它发生在副 - a - 时尚.这也很顺利.

根据我的理解,Facebook网站和Facebook应用程序必须使用相同的数据库来存储和访问数据,但我仍然没有得到他们如何协同工作,因为Facebook网站和Facebook应用程序的代码库是完全不同的东西性质?此外,Facebook网站和Facebook应用程序的执行方式是两个完全不同的东西.

在Facebook应用程序已使用不同的技术(例如Android,iOS设备的Windows Phone,黑莓等)和内置的Facebook网站已经使用PHP和所有其他的东西,建但他们仍然在同步协同工作.

将不同技术相互同步工作背后的现象是什么?

而且我对各种网站和应用程序(如Gmail,LinkedIn等)都观察到同样的事情.他们是否也像Facebook一样处理同样的现象?

请指导我正确的方向.作为PHP开发人员,我对这个项目的方法应该是什么以及如何?

谢谢.

php facebook social-networking mobile-application facebook-apps

-4
推荐指数
1
解决办法
1095
查看次数