防止对iPhone版网站的不必要的HTTP请求

时间:2010-01-17 17:59:03

标签: php jquery iphone performance xmlhttprequest

我有一个网站。它使用jQuery,一些插件,Cufon等来增加一些东西,主要是视觉上。

iPhone版本不需要任何这些文件。

我可以在不诉诸子域的情况下阻止iPhone加载这些脚本吗?

<script src="js/jquery-1.4.min.js" type="text/javascript"></script>
<script src="js/browsersupport.js" type="text/javascript"></script>
<script src="js/jquery.easing.custom.js" type="text/javascript"></script>
<script src="js/jquery.color.custom.js" type="text/javascript"></script>
<script src="js/jquery.sound.js" type="text/javascript"></script>

<script src="fonts/cufon.js" type="text/javascript"></script>
<script src="fonts/trgo.font.js" type="text/javascript"></script>

编辑:

使用像这样的库:http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

我将如何继续检测iPhone?

Browser::isBrowser('iPhone');

返回

Fatal error: Using $this when not in object context

3 个答案:

答案 0 :(得分:2)

如果用户代理表明它是iPhone,请不要加载它们。

更新

根据您引用的类,这就是应该完成检查的方式 - 我说应该只是因为我可以看到一些用户评论说这不是在您链接的博客上对他们可靠:

$browser = new Browser();
$jQuery = ($browser->getBrowser() == Browser::PLATFORM_IPHONE) ? false : true ;

另见:

答案 1 :(得分:1)

你为什么不需要它们?

我非常怀疑,因为很多网站试图提供网站的“optmizied”iPhone版本。

然而,除了不被允许看到FULL网站之外,没有什么比我更讨厌了。 iPhone是一款带有真正浏览器的设备,请不要愚弄您的网站,以免对iPhone用户毫无价值。

如果您从iPhone应用程序中调用网页来获取内容,则不会加载这些js文件(除非您使用的是Web视图)。

答案 2 :(得分:0)

毫无疑问,浏览器检测会在未来再次扼杀你。想象一下,Apple推出了支持所有这些功能的新iPhone,但是你有更多的选择可供选择?假装成iPhone的竞争对手平台怎么样?那可能发生的十亿其他选择中的任何一个怎么样?你看到了问题。

正如肯德尔在这里提到的,更好的办法是让用户选择要查看的网站。我知道自动执行它很酷,但它不是很易于维护,并且对用户来说很烦人。像语言检测这样的东西是不同的,提供一个完全不同的网站版本对于一些任意和非常不可靠的变量来说并不酷,这些变量可能存在也可能不存在,或者可能是也可能不存在。查找用于IE,Firefox,Opera,Safari的用户代理字符串,您将开始看到正在发生的事情..

PPK关于javascript的书中有一个非常有趣的部分,但是如果你决定走这条路,他的浏览器检测脚本可能会很方便(请不要!)

Browser Detection with Javascript