1

哪个更好 php 或 jquery ?

 header('Location: http://myhost.com/mypage.php');
     or
printf('<script type="text/javascript">location.href = " http://myhost.com/mypage.php";</script>');

我们什么时候使用一个而不是另一个?谢谢 。是用户有兴趣还是有条件可依。请让我知道,标头的基本需求是什么以及它是如何工作的。

4

6 回答 6

3

如果只是重定向问题,我会使用 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

于 2013-06-15T11:45:30.707 回答
2

如果你在 PHP 中重定向,打印一行 javascript 来重定向没有多大意义,因为 PHP 将在任何内容发送到浏览器之前重定向,而 javascript 将在页面加载后重定向。

使用 PHP。

于 2013-06-15T11:40:44.620 回答
0

php 更好,因为它不会减轻 JavaScript 的开/关,但这也取决于你在做什么。如果它是一个 jquery 提交表单并且你需要重定向然后 jquery 否则 php。

于 2013-06-15T11:43:33.243 回答
0

除非由于某些条件需要使用 javascript,否则通常使用 PHP 之一。即使浏览器 javascript 被禁用,php 重定向也可以工作。Javascript重定向主要用于某种事件和条件,例如

$('#clickMe').click(function(){

   if(somecondition){
   header.location = 'http://....';
   }

})
于 2013-06-15T11:43:47.617 回答
0

在 PHP 场景中,header() 实际上确实将信息发送回浏览器(客户端),然后浏览器向新 URL 发出新请求。所以它是相同的客户端->服务器->客户端->服务器->客户端。不同之处在于,在 PHP 模型中,您只在第一轮返回标头而不是 HTML。这样更有效率。所以,是的,PHP 模型是一个更好的解决方案,但从技术上讲,您拥有相同数量的通信循环。要了解更多信息,请参阅 Google HTML 标头和标头通信。

于 2013-06-15T11:43:49.663 回答
0

这两种方法可用于解决不同的问题,例如:

如果您想从您的 UI 中以编程方式控制应用程序流,请使用 javascript 重定向,您可以呈现 html 并根据 UI 操作重定向客户。

如果您只想尽可能快地重定向客户,后端解决方案更有意义,它不会加载任何 html,只要它重定向用户,它就不会加载任何带有新位置和浏览器的新标头发送到浏览器。

于 2013-06-15T11:47:41.260 回答