在服务器端(PHP)或客户端(Javascript)检测移动浏览器是否更好/更快?

在服务器端(PHP)或客户端(Javascript)检测移动浏览器是否更好/更快?,php,javascript,jquery,mobile,jquery-mobile,Php,Javascript,Jquery,Mobile,Jquery Mobile,我见过用Javascript(例如jQuery脚本)检测是否有人在使用移动浏览器的代码,也见过用PHP(或其他服务器端语言)工作的代码。但我从来没有看到过一个很好的解释,说明在所有或任何情况下,一个选择是否比另一个更好。有没有一个更好的选择的原因?我想说更好的方法是在服务器端,因为对于Javascript,您需要等待页面呈现,而在服务器端,它以前就发生过。我想说更好的方法是在服务器端,因为对于Javascript,您需要等待页面呈现,而在服务器端,它以前发生过。绿色比红色好吗 每件事都有它的优点

我见过用Javascript(例如jQuery脚本)检测是否有人在使用移动浏览器的代码,也见过用PHP(或其他服务器端语言)工作的代码。但我从来没有看到过一个很好的解释,说明在所有或任何情况下,一个选择是否比另一个更好。有没有一个更好的选择的原因?

我想说更好的方法是在服务器端,因为对于Javascript,您需要等待页面呈现,而在服务器端,它以前就发生过。

我想说更好的方法是在服务器端,因为对于Javascript,您需要等待页面呈现,而在服务器端,它以前发生过。

绿色比红色好吗

每件事都有它的优点和缺点。例如,在服务器端执行it更可靠,在客户端执行it意味着服务器的工作量更少

实际上,客户端可能禁用了JavaScript(请参阅Firefox的NoScript扩展和Chrome的ScriptNo,它允许智能用户只在您实际需要的站点上启用JS——一个很好的副作用是,它现在也消除了几乎所有的广告,因为他们现在似乎主要依赖第三方域的JS)。因此,仅使用用户代理字符串更可靠,但灵活性较差


如果你大量使用JS,你可能会遇到一个愚蠢的服务器,也就是说,你不需要缓慢的PHP,但是你可以通过各种CDN等提供高性能的静态服务来服务你的所有数据。但是任何需要JS的东西在搜索蜘蛛上的效果都不太好,一些用户可能会阻止它。

绿色比红色好吗

每件事都有它的优点和缺点。例如,在服务器端做it更可靠,在客户端做it意味着服务器的工作量更少

实际上,客户端可能禁用了JavaScript(请参阅Firefox的NoScript扩展和Chrome的ScriptNo,它允许智能用户只在您实际需要的站点上启用JS——一个很好的副作用是,它现在也消除了几乎所有的广告,因为他们现在似乎主要依赖第三方域的JS)。因此,仅使用用户代理字符串更可靠,但灵活性较差


如果你大量使用JS,你可能会遇到一个愚蠢的服务器,也就是说,你不需要缓慢的PHP,但你可以通过各种CDN等提供高性能的静态服务来服务你的所有数据。但是,任何需要JS的东西在搜索蜘蛛上的效果都不太好,一些用户可能会阻止它。

正如Ricebowl所说,永远不要相信t但是,我觉得如果你真的信任客户端,这几乎总是一个问题。如果你的应用程序值得编写,那么它就值得适当地保护。如果任何人可以通过编写自己的客户端并传递你不期望的数据来破坏它,那就是一件坏事。因此,你需要在服务器上验证。

正如Ricebowl所说的,永远不会信任客户端。但是,我觉得如果你信任客户端,这几乎总是一个问题。如果你的应用程序值得编写,那么它就值得适当地保护。如果任何人可以通过编写自己的客户端并传递你不期望的数据来破坏它,那就是一件坏事。因此,你需要在服务器上进行验证。

典型的答案是:I这取决于你为什么要检查

从我的观点来看,以下是我通常考虑的:

  • 如果您希望基于浏览器向用户提供不同的体验(手机、平板电脑、笔记本电脑等),请在服务器上进行

  • 如果您想要呈现相同的一般体验,但需要考虑浏览器兼容性问题,请在客户端进行


用户体验领域的一些人也认为它是“糟糕的形式”向用户显示一个空白页面并动态填充。相反,应该填充一个初步页面,并动态添加或更改内容。如果您担心这一点,可能需要将服务器端和客户端结合起来。

典型的答案是:这取决于您进行检查的原因

从我的观点来看,以下是我通常考虑的:

  • 如果您希望基于浏览器向用户提供不同的体验(手机、平板电脑、笔记本电脑等),请在服务器上进行

  • 如果您想要呈现相同的一般体验,但需要考虑浏览器兼容性问题,请在客户端进行


用户体验领域的一些人也认为它是“糟糕的形式”向用户显示一个空页面并动态填充。相反,应该填充一个初步页面,并动态添加或更改内容。如果您担心这一问题,可能需要将服务器端和客户端结合起来。

如果您试图检测到这一点以确定哪些javascript功能可用如果使用JavaScript,您将获得更高的准确性,而不会严重损失速度


如果您要完全更改呈现的页面类型,如完整网站或移动网站,您最好使用此服务器端。

如果您试图检测此情况以确定可用的javascript功能,则在使用javascript执行此操作时,您将获得更高的准确性,并且不会严重损失速度


如果你想完全改变呈现的页面类型,比如完整的网站或移动网站,你最好使用这个服务器端。

作为一名web开发人员、UX和UI程序员,我认为如果有人想改变他们的UA,那没关系。他们需要处理不兼容的问题。至于移动与桌面,我建议e light版本的browscap.ini,而不是搜索ismobiledevice的设备检查。如果语句为true或false,则您也可以检查tablet。在if mobile子句中,检查关联数组中的istablet键。您可以将其用于电话或Table