浅谈ecshop的缓存机制
from: http://www.bulian.net/5/156.htm
我们知道,ecshop的站点打开速度很快,为什么呢?因为他使用了缓存技术,相当于打开了一个编译好的静态页,所以速度很快。
在后台系统设置里,可以设置缓存的时间,默认为3600秒。如果你在建站初期,经常要调试网站,可以设置缓存时间为0,不缓存。
打开index.php的源文件,你可以看到
XML/HTML代码
- /* 缓存编号 */
- $cache_id = sprintf('%X', crc32($_SESSION['user_rank'] . '-' . $_CFG['lang']));
$cache_id就是缓存的ID,根据这个ID,找到缓存的文件。ecshop使用的缓存类似于smarty的缓存机制。当然ecshop把它简单化了。全部写在cls_template.php文件里,
XML/HTML代码
- if (!$smarty->is_cached('index.dwt', $cache_id))
- {
通过smarty类的is_cached方法判断页面是否重新缓存页面。如果返回false,那么就直接显示缓存的文件。
XML/HTML代码
- $smarty->display('index.dwt', $cache_id);
这样的缓存,既节省了网页的打开时间,又增加了网站的负载性能。你可以根据网站的实际情况,来设置模板的缓存时间,以提升网站性能。
但网页有些地方,不能缓存。比如:库存、倒记时、会员的登录状态,购物车等,这些都必须是实时的,ecshop里可以找到lib_insert.php文件,所有不能缓存的地方都写在这里呢。
比如下面代码
XML/HTML代码
- /**
- * 调用购物车信息
- *
- * @access public
- * @return string
- */
- function insert_cart_info()
- {
- $sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
- ' FROM ' . $GLOBALS['ecs']->table('cart') .
- " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
- $row = $GLOBALS['db']->GetRow($sql);
- if ($row)
- {
- $number = intval($row['number']);
- $amount = floatval($row['amount']);
- }
- else
- {
- $number = 0;
- $amount = 0;
- }
- $str = sprintf($GLOBALS['_LANG']['cart_info'], $number, price_format($amount, false));
- return '<a href="flow.php" title="' . $GLOBALS['_LANG']['view_cart'] . '">' . $str . '</a>';
- }
是显示购物车的,在模板里使用{insert name='cart_info'}进行调用。
另外也可以使用ajax方法实现,此外略过。
好了,现在你应该理解ecshop模板的缓存机制了吧!
相关推荐
在config.php 增加redis_type='redis';在init.php 判断cls_template.php即可。
PHP 5.5引入了一些重要的性能优化和新特性,例如:OpCache(用于缓存PHP编译后的opcode),增强了语法糖,如闭包的use语法,以及对异步I/O的支持等,这些都可能被ECShop的这一版本所利用。 ECShop的主要特点包括: ...
标题中的“ecshop源码分析——用cookie缓存sql语句”揭示了本文将探讨的是电商系统ECSHOP在优化数据库查询性能方面的一个实践,即利用Cookie来缓存SQL语句。ECSHOP是一款基于PHP开发的开源电商解决方案,它的性能...
综上所述,解决ECSHOP3.6 H5网络错误的关键在于确保服务器配置符合官方推荐标准,正确配置`php.ini`和`httpd.conf`文件,并处理好304 Not Modified缓存问题。通过遵循上述步骤,大多数常见的网络错误应该能得到有效...
标题中的"ecshop同时支持php5、php7改动文件"表明这是一个针对ECSHOP电商平台的更新或修改,目的是使其兼容PHP5和PHP7两种不同的PHP版本。ECSHOP是一款开源的电子商务解决方案,广泛应用于各类在线商店。PHP5和PHP7...
6. 性能优化:ECShop可能利用了PHP5.4中的OPcache,这是一个预编译缓存,能够显著提升PHP脚本的执行速度。此外,可能还进行了其他性能优化,如减少数据库查询、缓存策略的改进等。 7. 后台管理:ECShop的后台管理...
利用ECSHOP的计划与任务清除过多的缓存页面文件 重要说明: 1.适用于utf-8编码; 2.原下载包内languages的路径有错误,正确的是:languages\zh_cn\cron\myclr.php
在性能优化方面,ECShop可能利用了PHP5.5的OpCache功能,这是一个内置的opcode缓存,可以显著减少脚本解析时间,提高整体运行效率。此外,PHP5.5的改进还包括了更好的内存管理,降低了内存泄漏的可能性,这对于高...
ECSHOP是一款基于PHP语言开发的开源电子商务系统,它为中小企业提供了构建在线商店的解决方案。在"ecshop文件"中,我们可能涉及到以下几个关键知识点: 1. PHP基础:ECSHOP是用PHP编写的,因此理解PHP的基础语法、...
这套模板整合了页面静态缓存+压缩输出功能,但是下载模板后,即使不使用这套模板,经过设置的缓存策略同样会对ECShop当前应用的模板有效。 所以这个功能是可以独立使用的。 下载后,覆盖到EC安装路径下,(EC程序...
1. **OPcache**:这是一个内置的opcode缓存器,能够显著提高PHP脚本的执行速度,减少了对磁盘I/O的依赖,提高了服务器性能。 2. **intl扩展升级**:PHP 5.5中,国际化(Intl)扩展得到了增强,提供了更多的本地化...
ECSHOP是一款基于PHP语言开发的开源电子商务系统,它为中小型企业提供了构建网上商城的高效解决方案。在本文中,我们将深入探讨ECSHOP源码的核心知识点,以及如何利用这些知识来理解和优化你的电子商务平台。 一、...
"68商之翼版ecshop"是一款基于PHP开发的电子商务平台,专为中小企业和商家提供二次开发服务的商城系统。ECSHOP是一款流行的开源电商软件,它以其易用性、灵活性和丰富的功能集而受到众多用户的青睐。在这款68商之翼...
Ecshop是一款基于PHP语言开发的开源电子商务系统,广泛应用于搭建各类网上商城。"基于PHP的Ecshop韩都衣舍最新豪华版源码.zip" 文件很可能包含的是 Ecshop 的定制化版本,特别为韩都衣舍这家知名的在线零售商进行了...
"Page Caches"是Ecshop中的一种缓存机制,旨在提升网页的加载速度,从而改善用户浏览体验。 页面缓存(Page Cache)是一种常见的Web性能优化技术,它通过存储静态或动态生成的HTML页面到内存或硬盘上,当用户请求...
ECShop是一款基于PHP开发的开源电子商务系统,专为中小企业打造,提供强大的商品管理和在线销售功能。"php/cms/ecshop标签生成器"是一个针对ECShop的扩展工具,旨在帮助开发者更便捷地创建和管理自定义标签,提升...
EcShop是一款基于PHP开发的开源电子商务系统,它的模板引擎采用了Smarty。Smarty是一个广泛使用的PHP模板引擎,它将业务逻辑与视图分离,使得开发者能够更方便地管理和设计网站的前端界面。在这里,我们将深入探讨...
《ecshop_init.php文件分析:理解ECShop框架的初始化过程》 在深入解析ECShop的初始化文件ecshop_init.php之前,我们先来了解ECShop是什么。ECShop是一款基于PHP和MySQL构建的开源网上商店系统,它由上海商派网络...
步骤5:如果你发现模板文件中的销量值没有更新,可能是因为ECSHOP缓存了数据。这时,需要清理ECSHOP的缓存,这通常可以通过后台的“系统设置”或“缓存管理”功能完成。 步骤6:完成以上步骤后,刷新前端页面,你...
当`DEBUG_MODE`设置为2时,Ecshop会禁用所有缓存功能。这有助于开发者确保看到的是最新的数据和状态,而不是可能过时的缓存内容。对于开发和测试环境来说,这是一个有用的设置,但在生产环境中应重新启用缓存以提高...