我正在尝试为我的网站做一些类似 Netflix 的 5 星级评级系统的事情,我注意到 Netflix 即使禁用了 JavaScript,仍然会在不刷新页面的情况下提交评级。这是显而易见的,因为当您手动重新加载页面时,您可以看到新的评级。但是,在重新加载页面之前,更改不可见。
以下是 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 关闭时也会表现出这种行为。否则它将更新数据并且不需要手动刷新。所以也没有 AJAX。亲自检查一下,我相信你们很多人都有 Netflix 帐户。
经过更多研究后,我找到了我正在寻找的答案。您可以通过从您向其发送请求的页面发送 HTTP 响应 204 状态代码来完成此操作。例如,假设您将其发送到 php 脚本,请使用以下内容启动页面:
header("HTTP/1.0 204 No Response");
正如这里所述:http://php.net/manual/en/function.header.php#32569 http://php.net/manual/en/function.header.php#32569
如果您还没有使用过,HTTP Response 204 会非常方便。 204告诉服务器立即终止这个请求。如果您希望 JavaScript(或类似)客户端函数在不刷新或更改当前网页的情况下执行服务器端函数,这会很有帮助。非常适合更新数据库、设置全局变量等。
这就是我现在在脚本中使用的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)