哪个更好 php 或 jquery ?
header('Location: http://myhost.com/mypage.php');
or
printf('<script type="text/javascript">location.href = " http://myhost.com/mypage.php";</script>');
我们什么时候使用一个而不是另一个?谢谢 。是用户有兴趣还是有条件可依。请让我知道,标头的基本需求是什么以及它是如何工作的。
如果只是重定向问题,我会使用 PHP(用户不可能停止此操作),就好像用户禁用了 JavaScript,重定向将失败。
如果你想要一个更简单的,你可以用简单的 HTML 来做
<meta http-equiv="refresh" content="0;url=NEW PAGE URL" />
<!-- Redirect Immediately-->
或者说 30 秒后
<meta http-equiv="refresh" content="30;url=NEW PAGE URL" />
<!-- Redirects after 30 secs -->
注意:如果您使用
header()
重定向,请确保您不输出任何 HTML,或者您没有任何空白,否则您会收到一条警告,上面写着headers already sent
如果你在 PHP 中重定向,打印一行 javascript 来重定向没有多大意义,因为 PHP 将在任何内容发送到浏览器之前重定向,而 javascript 将在页面加载后重定向。
使用 PHP。
php 更好,因为它不会减轻 JavaScript 的开/关,但这也取决于你在做什么。如果它是一个 jquery 提交表单并且你需要重定向然后 jquery 否则 php。
除非由于某些条件需要使用 javascript,否则通常使用 PHP 之一。即使浏览器 javascript 被禁用,php 重定向也可以工作。Javascript重定向主要用于某种事件和条件,例如
$('#clickMe').click(function(){
if(somecondition){
header.location = 'http://....';
}
})
在 PHP 场景中,header() 实际上确实将信息发送回浏览器(客户端),然后浏览器向新 URL 发出新请求。所以它是相同的客户端->服务器->客户端->服务器->客户端。不同之处在于,在 PHP 模型中,您只在第一轮返回标头而不是 HTML。这样更有效率。所以,是的,PHP 模型是一个更好的解决方案,但从技术上讲,您拥有相同数量的通信循环。要了解更多信息,请参阅 Google HTML 标头和标头通信。
这两种方法可用于解决不同的问题,例如:
如果您想从您的 UI 中以编程方式控制应用程序流,请使用 javascript 重定向,您可以呈现 html 并根据 UI 操作重定向客户。
如果您只想尽可能快地重定向客户,后端解决方案更有意义,它不会加载任何 html,只要它重定向用户,它就不会加载任何带有新位置和浏览器的新标头发送到浏览器。