【发布时间】:2022-02-12 17:37:33
【问题描述】:
我这里有一段代码使用HTML 5 SSE - EventSource 对象,它允许 php 脚本将更新推送到网页。但是,我也有兴趣将参数传递给脚本。我怎样才能做到这一点?
代码如下:
if(typeof(EventSource) !== "undefined")
{
var source = new EventSource("get_message.php");
source.onmessage=function(event)
{
document.getElementById("message-window").innerHTML+=event.data + "<br>";
};
}
else
{
document.getElementById("message-window").innerHTML="Sorry, your browser does not support server-sent events...";
}
我能想到的最接近的就是使用AJAX,比如
$.post("get_message.php", {largest_id: 30}, function(data, status){ some function });
但是,我不确定如何为此编写 jQuery?
【问题讨论】:
-
你真的需要 POST 正文吗?或者 GET 参数 (
new EventSource("get_message.php?largest_id=30")) 就足够了吗? -
@Bergi 我认为 GET 参数的字符长度上限?我需要没有 char 上限的 POST
-
嗯,这取决于你的网络服务器的能力和一些浏览器的怪癖。但是你的用例是什么?您是否正在将文件上传到流的位置?
-
@Bergi 这实际上是一个聊天应用程序 - 我将聊天内容作为参数发送到服务器 - 我认为这有点过分......但我不知道如何发送数据
-
对于聊天(双向、异步消息),SSE 是错误的工具。使用网络套接字。
标签: javascript php jquery html server-sent-events