get_browser降低页面加载速度,任何其他选择
get_browser slowing down page load, any alternative?
我已经使用PHP的get_browser
函数很长一段时间了,从来没有真正注意到我的任何网站上有任何滞后。然而,最近我注意到我的一个网站在服务器端加载的时间比它应该加载的时间多了一秒钟左右。我注释掉了get_browser
函数,页面立即加载。
这可能与我的服务器有关,还是get_browser
的功能很慢?该网站是我唯一一个在windows服务器上运行的网站,这可能是问题所在吗?或者这可能与我的browscap.ini文件有关(该文件每天从http://browsers.garykeith.com)?
如果我无法加快get_browser
功能的速度,有其他选择吗?我需要可靠地收集以下关于浏览器的信息:
- 它是什么浏览器,即Chrome、IE、Safari等
- 它是什么版本(完整版),即10.1等
- 无论是爬虫还是机器人
我不知道有任何其他方法可以从用户代理收集这些信息,使用javascript会更好吗(我宁愿不使用javascript,因为我需要值服务器端)?
我在使用get_browser
时也遇到了大约5秒的延迟,所以我也在寻找另一种解决方案。
什么工作得很好,肯定会在很长一段时间内是最新的是piwik中的一个库:
- Piwik设备检测器
此类将派上用场:http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/.我在很多项目中都使用它,它不使用get_browser,而是查看浏览器的用户代理。我已使用Windows Phone浏览器更新了我的版本,您可以在以下位置下载:http://cl.ly/code/1V3E1k1G3B25.
到目前为止,我还没有找到get_browser
函数的合适替代方案,也没有找到为什么它在Windows服务器上运行缓慢,而在Linux上运行缓慢。
目前,我将应用一个基本的cookie变通方法。第一次访问我的网站时,我会将浏览器的详细信息存储在cookie中,然后从那时起检索这些信息。这比目前使用get_browser
函数更快。
如果其他人有任何其他解决方案,请发表评论或发布
目前,用于PHP的完整browscap.ini的大小约为10MB。对get_browser()或其他方法的一次调用访问该"数据库"需要大量的资源。
这就是我更改格式并将数据导入MySQL数据库的原因。我写了两个简单的脚本,使我能够在新的browscap.ini出现时轻松地更新数据库。第一个脚本从browscap.ini文件生成表结构,第二个脚本为表播种。如果你对剧本感兴趣,请在下面的评论中告诉我,我会帮你上传。他们满是意大利面条,但他们工作。
由于浏览器在会话期间不会发生变化,因此每个会话只应从browscap.ini中获取一次数据,然后将其存储
- 函数参数中的数据与指定变量之间的任何性能差异
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery中是否内置了任何字符串格式化函数
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 有任何可能将facebook实时信使整合到一个网站中
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- AJAX:$_GET不返回任何值
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- Wacom stu-430签名捕获速度太慢
- 将事件处理程序绑定到任何可能的事件
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- document.styleSheets不返回任何内容
- 如何在速度模板中获取LiferayPortlet实例id
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- get_browser降低页面加载速度,任何其他选择
- JQuery在执行速度上是否有任何缺点,这些缺点在大规模的web应用程序中可能会很明显
- 页面速度 - 仅使用 defer 属性的任何问题
- 我做的路点工作很顺利,但改变速度值并没有影响任何原因