我正在尝试为我的网站做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§ion=QUEUE" class="rv5" tabindex="0" title='Click to rate the movie "Loved It"'>Rate 5 stars</a>
有人知道Netflix是如何做到的吗?
提示:如果您查看来源并进行搜索,则无法在任何地方找到“iframe”。 此外,它在JavaScript OFF时表现出这种行为。否则它将更新数据而不需要手动刷新。所以也没有AJAX。亲自检查一下,我相信很多人都有Netflix账号。
答案 0 :(得分: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(或类似)客户端功能执行服务器端功能而不刷新或更改当前网页,这将非常有用。非常适合更新数据库,设置全局变量等。
这就是我现在在脚本中使用的内容。