4

我正在尝试为我的网站执行 Netflix 的 5 星评级系统之类的操作,我注意到即使禁用了 JavaScript,Netflix 仍会在不刷新页面的情况下提交评级。这很明显,因为当您手动重新加载页面时,您可以看到新的评级。但是,在您重新加载页面之前,更改不可见。

以下是 Netflix 上的链接示例:

<a href="http://movies.netflix.com/SetRating?value=5&pval=4.8&widgetid=M70186045_496624_2_36&authURL=1272123378738.TS7qzDVHSE6abcEeRPuqldimKYc%3C&section=QUEUE" class="rv5" tabindex="0" title='Click to rate the movie "Loved It"'>Rate 5 stars</a>

有人知道 Netflix 是怎么做到的吗?

提示:如果您查看源代码并进行搜索,您将不会在任何地方找到“iframe”。此外,它在 JavaScript 关闭时表现出这种行为。否则它将更新数据并且不需要手动刷新。所以也没有 AJAX。自己检查一下,我相信你们中的许多人都有 Netflix 帐户。

4

1 回答 1

9

经过一番研究,我找到了我正在寻找的答案。您可以通过从您将请求发送到的页面发送 HTTP 响应 204 状态代码来执行此操作。例如,假设您将其发送到 php 脚本,请使用以下内容开始页面:

header("HTTP/1.0 204 No Response");

如此处所述:http: //php.net/manual/en/function.header.php#32569

如果你没用过,HTTP Response 204 可以很方便。204 告诉服务器立即终止这个请求。如果您希望 javascript(或类似)客户端函数在不刷新或更改当前网页的情况下执行服务器端函数,这将很有帮助。非常适合更新数据库、设置全局变量等。

这就是我现在在我的脚本中使用的。

于 2013-06-30T00:19:47.130 回答