2

我正在尝试编写一个可以与我的服务器一起使用的插件。每个页面加载都会调用我的服务器的 AJAX 调用以获取数据,服务器应该返回一个简单的字符串。

现在我试图了解这种程序的最佳方法是什么。

我应该在每次需要数据时创建一个 AJAX 调用,还是有什么方法可以创建一个开放连接(尽管网页发生了变化)以节省服务器电源?

我应该以某种方式听一些端口或类似的东西吗?

我还有其他选择吗?或者我应该怎么做才能以最有效的方式做到这一点?

4

3 回答 3

2

您可以使用 HTML5 websockets (http://www.html5rocks.com/en/tutorials/websockets/basics/) 如果您使用这种方法,那么您将需要重新考虑您的网络服务器编程方式,因为 websockets 没有t 遵循 AJAX 做的请求-响应范式。相反,他们使用连接来传输数据,因此您需要在服务器上打开一个端口并收听它,实现方式取决于您使用的语言或框架。这快速且响应迅速,但仅适用于大多数现代浏览器。

其他方法是使用长轮询(http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery)。这被一些聊天客户端使用。它向服务器发送 AJAX 请求,服务器接收它并保持等待,直到数据可用,然后发送响应。然后客户端发出另一个请求,等待并重复。

可能您几乎从不想向客户端发送简单的字符串。使用 XML 或 JSON 对响应进行编码几乎总是更好。

于 2012-12-06T15:54:50.867 回答
1

只需创建一个简单的 AJAX 调用并将其放在每个页面上,或者将其保存为自己的文件并将服务器包含在每个页面的标题中。就那么简单!

$(document).load(function(){    

    $.ajax({
        type: "POST",
        url: "/where_your_string_is.php",
        success: function(msg){

            $("#stringHolder").html(msg);

            }

    }); 

});     
于 2012-12-06T16:04:10.577 回答
0

Websockets API 允许双向通信,但我刚刚发现如果您只需要提取数据,可以使用另一个称为HTML SSE的选项。因此,如果您偶然发现了这个问题,也请考虑这个选项。

于 2014-01-22T07:46:41.587 回答