这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
“怎么样能让我的 Drupal 网站更快一些?”是我们最常遇到的一个问题。站点速度确实非常重要,因为它会影响你的 SEO排名效果、访客是否停留以及你自己管理网站所需要的时间。
今天我们就来看看那些通过 Drupal 自带界面便能够实现的提速操作。
启用缓存
通过访问“管理>配置>开发>性能”( admin/config/development/performance)页面可进行 Drupal 内置的性能优化设置页面。
这个页面看到的所有选项都可以勾选。这些缓存设置只对匿名用户(未登录用户)有影响,所以如果你的站点并不频繁更新,可以将缓存时间设置得长一些。缓存区块可以避免在每个页面加载区块时都要对其进行重建。区块在很多Drupal站点中被大量使用,因此对其它进行缓存会很有帮助。启用区块缓存也有一个缺点,即如果你修改了其中的内容,直到达到最小缓存周期(Minimum cache lifetime)前,匿名用户将不会看到区块中内容的变化。当然你可以点击“清空所有缓存”按钮,让修改能够立即被看到。
带宽优化(Bandwidth Optimization)部分的设置对匿名用户和登录用户同样都有影响,通过减小文件的大小、将多个文件进行合并以减少浏览器的请求数量等方式,这些设置可以让你的网站加载更加快速。
压缩缓存页面 (Compress cached pages)并不是必选项。有时因为服务器已经对页面进行压缩操作,此时如果再选中压缩的话反而会使网站的速度变慢,因为这会尝试对已压缩的内容再次进行压缩。如果你不知道网站是否已经进行压缩,可以使用 GZIP 测试工具进行确认——首先取消选中“压缩缓存页面”,然后使用GZIP测试工具进行测试,如果结果显示网页已压缩,则不勾选。反之,则选中“压缩缓存页面”(这时再进行GZIP测试需要显示网页已缓存)。
禁用不必要的模块
知道 Drupal 在每个页面加载时都会做些什么吗?它会检查每一个模块,确认它们是否要向当前页面中添加一些内容。如果网站上有50+个模块,可能会让你有些痛苦。通常,启用一个模块能够获得一些简单和便利的功能,但这其实是一项交易,你是希望拥有更快的站点还是更方便的体验?
你可以通过禁用以下这些内置模块来提升网站速度:
- Blog
- Forum
- Taxonomy
- Search
- Help
- Shortcut
- Dashboard
- Database Logging
- Field UI
- Color
- Toolbar
- Tracker
- Statistics
同样的,如果网站中有以下模块,也可以禁用掉:
- Update Manager
- Administration Development tools
- Devel
- Devel node access
- Rule UI
- Views UI
- Module Filter
(译注:开发和管理常用的 Drupal 模块在线上站点都可以删除和移除,用于辅助管理的UI类模块,可根据使用需要进行禁用)
启用Views缓存
如果你的站点上有Views模块,在没有禁用 Views UI模块的情况下,你可以通过Views管理界面启用 Views 缓存。
Views是将数据从数据库中拿出来以各种方式展示的好办法。有时因为Views中包含大量信息,需要经历的工作和时间会比较长。因此当包含Views的页面进行加载时,每次都要再重复相同的查询工作。通过启用Views缓存,Views可以为其所要显示的内容只进行一次查询,便可在指定的时间周期内(或其它条件规则下)直接显示,而不需要每次都经历复杂的查询。这对页面加载速度将会有巨大的提升。
因为查询结果(Query results)与渲染输出结果(Rendered output)通常是相关的,所以你完全可以将它们设置成一样的值 。以上图设置为例,如果用户更新了Views中相关的内容,因为缓存的原因,用户需要等待1小时之后才会看到新的输出结果。
启用 Panels 缓存
很多 Drupal 网站使用 Panels 模块进行搭建。Panels 在为 Drupal 提供灵活布局方面的贡献是相当伟大的,但它却可以拖慢整个页面的加载速度。然而,每个 Panels 面板都有它自己的缓存设置,可以根据需要自行确定是否对页面各部分数据进行缓存。
即简单地只为 Panels 面板设置基于时间的缓存,也可以基于特定条件为其设置复杂的缓存机制,但那需要一定的时间去深入了解,一般用户往往没那个需要。
另外,有一个名为“Panels, Why so slow”的模块,可以显示每个Panels面板的加载时间,并以红色标示出很慢的那些。这为尝试不同的Panels设置以及纠正设置非常有用,可以通过调试让页面达到更短的加载时间。
对图片进行优化
现在到处都流行大型幻灯片和全屏图片,而这些大图片可以严重地拖慢网站的打开速度。压缩图片可以有利于提高网站速度,但也请注意不要过度压缩图片而导致质量下降。
使用 PNG 优化工具
如果网站使用大量使用Photoshop 制作的PNG图片,便可通过PNG优化器获得巨大的好处。
使用JPEG优化工具
JPG图片稍微要麻烦一点,因为在进行图片压缩之前,需要先对压缩率进行设置以便在图片文件尺寸和质量上取得平衡。
Drupal图片压缩
如果网站的图片通过ImageCache(Drupal 6)或者Image Styles (Drupal 7)进行处理,则可以通过设置项调整输出图片的压缩率。进入“配置>媒体>图像工具包(admin/config/media/image-toolkit)”页面便可进行简单设置。较低的设置值会产生低分辨率的小图片,高的值则对应分辨率高的大图片。这个设置对所有图片进行“一刀切”,所以无法通过它对每个图片进行单独的设置。
Drupal提速小结
文本仅仅只是“优化Drupal网站速度”这一话题的皮毛,今后我们还有很多内容可以交流。在提升Drupal速度这个话题上,我们还可以花很多时间进行研究,以下是导致Drupal网站缓慢的几类原因:
- 服务器或网站存放空间的速度
- 文件、图像及媒体文件的物理尺寸
- 文件、图像及媒体文件的数量
- 启用的模块数量
- 站点上运行的其它程序脚本
原文标题:这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
原文地址:http://drupalct.org/drupal-performance/speed-up-drupal-with-cache-and-else.html
这些优化 Drupal 网站速度的超简单办法,你忽略了多少?的更多相关文章
- Linux PHP多版本切换 超简单办法
今天在帮别人安装一个不知所谓的东西时碰到,三版本的PHP环境,我感觉那个人也是666哒,他使用的是AMH快速开发工具 有图有真相!!! 然后就顺便写下怎么快速,简便切换php版本 首先:find命令找 ...
- Web 性能优化:21 种优化 CSS 和加快网站速度的方法
这是 Web 性能优化的第 4 篇,上一篇在下面看点击查看: Web 性能优化:使用 Webpack 分离数据的正确方法 Web 性能优化:图片优化让网站大小减少 62% Web 性能优化:缓存 Re ...
- input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has
input屏蔽历史记录 设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处 ;(function($){$.ex ...
- 优化Laravel网站打开速度
Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度. 1.关闭debug 打开.env文 ...
- (转)网站速度优化技巧:Nginx设置js、css过期时间
网站速度优化技巧:Nginx设置js.css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for ...
- 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
在您阅读本文前,先需要告诉你的是:即使是本文优化过的算法,DCT去噪的计算量依旧很大,请不要向这个算法提出实时运行的苛刻要求. 言归正传,在IPOL网站中有一篇基于DCT的图像去噪文章,具体的链接地址 ...
- 超简单的NDK单步调试方法
令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...
- Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡
文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...
- 让那些为Webkit优化的网站也能适配IE10
特别声明:此篇文章由David根据Charles Morris的英文文章原名<Adapting your WebKit-optimized site for Internet Explorer ...
随机推荐
- WPF拖到、移动控件
只需2个事件和一个point变量即可: Point mouse_offset = , ); void TC_MouseLeftButtonDown(object sender, MouseButton ...
- 一个自己做的easyui datagird扩展
var a; $(function () { $("body").bind("contextmenu", function () { return false; ...
- hbase读写流程
一. Hbase读流程 META表记录着表的原信息,根据rowkey查询META表,获取所在region信息 客户端去相应的regionServer查询数据,先查询memStore(memstore是 ...
- (C#) Action, Func, Predicate 等泛型委托
(转载网络文章) (1). delegate delegate我们常用到的一种声明 Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型. 例:public del ...
- 学习ios键盘和textfield之间操作体会
所需要计算就是,键盘移动以后是否遮挡住了textfield,需要用到的计算公式: int offset = 键盘的高度-(self.frame.size.height - self.textfiled ...
- linux下的g++编译器安装
再debian下直接apt-get install gcc g++就可以了.按照类似的逻辑,再Fedora下yum install gcc g++ 报告无法找到g++包. 查了一下,原来这个包的名字叫 ...
- POJ 3261 Milk Patterns (求可重叠的k次最长重复子串)+后缀数组模板
Milk Patterns Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7586 Accepted: 3448 Cas ...
- Eclipse中generate getter and setter对boolean的反应
有点意思 , 如果变量是boolean类型的 ,就会生成isxxx开头的getter方法 , 但如果是Boolean对象的 , 就会生成getterxx开头的getter对象. 例如 Boolean ...
- Word Frequency
https://leetcode.com/problems/word-frequency/ Write a bash script to calculate the frequency of each ...
- JS获取两个日期的月份差
function getMonthBetween(startDate,endDate){ startDate=new Date(startDate.replace(/-/g,'/')); endDat ...