`

php > ecshop 缓存

    博客分类:
  • php
 
阅读更多

浅谈ecshop的缓存机制

from: http://www.bulian.net/5/156.htm

我们知道,ecshop的站点打开速度很快,为什么呢?因为他使用了缓存技术,相当于打开了一个编译好的静态页,所以速度很快。

在后台系统设置里,可以设置缓存的时间,默认为3600秒。如果你在建站初期,经常要调试网站,可以设置缓存时间为0,不缓存。

打开index.php的源文件,你可以看到

XML/HTML代码
  1. /* 缓存编号 */   
  2. $cache_id = sprintf('%X', crc32($_SESSION['user_rank'] . '-' . $_CFG['lang']));  

$cache_id就是缓存的ID,根据这个ID,找到缓存的文件。ecshop使用的缓存类似于smarty的缓存机制。当然ecshop把它简单化了。全部写在cls_template.php文件里,

XML/HTML代码
  1. if (!$smarty->is_cached('index.dwt', $cache_id))   
  2. {  

通过smarty类的is_cached方法判断页面是否重新缓存页面。如果返回false,那么就直接显示缓存的文件。

XML/HTML代码
  1. $smarty->display('index.dwt', $cache_id);  

这样的缓存,既节省了网页的打开时间,又增加了网站的负载性能。你可以根据网站的实际情况,来设置模板的缓存时间,以提升网站性能。

但网页有些地方,不能缓存。比如:库存、倒记时、会员的登录状态,购物车等,这些都必须是实时的,ecshop里可以找到lib_insert.php文件,所有不能缓存的地方都写在这里呢。

比如下面代码

XML/HTML代码
  1. /**   
  2.  * 调用购物车信息   
  3.  *   
  4.  * @access  public   
  5.  * @return  string   
  6.  */   
  7. function insert_cart_info()   
  8. {   
  9.     $sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .   
  10.            ' FROM ' . $GLOBALS['ecs']->table('cart') .   
  11.            " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";   
  12.     $row = $GLOBALS['db']->GetRow($sql);   
  13.   
  14.     if ($row)   
  15.     {   
  16.         $number = intval($row['number']);   
  17.         $amount = floatval($row['amount']);   
  18.     }   
  19.     else   
  20.     {   
  21.         $number = 0;   
  22.         $amount = 0;   
  23.     }   
  24.   
  25.     $str = sprintf($GLOBALS['_LANG']['cart_info'], $number, price_format($amount, false));   
  26.   
  27.     return '<a href="flow.php" title="' . $GLOBALS['_LANG']['view_cart'] . '">' . $str . '</a>';   
  28. }  

是显示购物车的,在模板里使用{insert name='cart_info'}进行调用。

另外也可以使用ajax方法实现,此外略过。

好了,现在你应该理解ecshop模板的缓存机制了吧!

 

 

分享到:
评论

相关推荐

    ecshop redis 页面缓存

    在config.php 增加redis_type='redis';在init.php 判断cls_template.php即可。

    ecshop2.73 php5.5版

    PHP 5.5引入了一些重要的性能优化和新特性,例如:OpCache(用于缓存PHP编译后的opcode),增强了语法糖,如闭包的use语法,以及对异步I/O的支持等,这些都可能被ECShop的这一版本所利用。 ECShop的主要特点包括: ...

    ecshop源码分析——用cookie缓存sql语句

    标题中的“ecshop源码分析——用cookie缓存sql语句”揭示了本文将探讨的是电商系统ECSHOP在优化数据库查询性能方面的一个实践,即利用Cookie来缓存SQL语句。ECSHOP是一款基于PHP开发的开源电商解决方案,它的性能...

    ECSHOP3.6 H5网路错误解决方案(php.ini,httpd.conf,CorsService.php和304 Not Modified缓存错误)

    综上所述,解决ECSHOP3.6 H5网络错误的关键在于确保服务器配置符合官方推荐标准,正确配置`php.ini`和`httpd.conf`文件,并处理好304 Not Modified缓存问题。通过遵循上述步骤,大多数常见的网络错误应该能得到有效...

    ecshop同时支持php5、php7改动文件

    标题中的"ecshop同时支持php5、php7改动文件"表明这是一个针对ECSHOP电商平台的更新或修改,目的是使其兼容PHP5和PHP7两种不同的PHP版本。ECSHOP是一款开源的电子商务解决方案,广泛应用于各类在线商店。PHP5和PHP7...

    ecshop(php5.4修订版)

    6. 性能优化:ECShop可能利用了PHP5.4中的OPcache,这是一个预编译缓存,能够显著提升PHP脚本的执行速度。此外,可能还进行了其他性能优化,如减少数据库查询、缓存策略的改进等。 7. 后台管理:ECShop的后台管理...

    定期清除缓存页面插件 for ECSHOP.rar

    利用ECSHOP的计划与任务清除过多的缓存页面文件 重要说明: 1.适用于utf-8编码; 2.原下载包内languages的路径有错误,正确的是:languages\zh_cn\cron\myclr.php

    兼容PHP5.5的ECShop2.7.3

    在性能优化方面,ECShop可能利用了PHP5.5的OpCache功能,这是一个内置的opcode缓存,可以显著减少脚本解析时间,提高整体运行效率。此外,PHP5.5的改进还包括了更好的内存管理,降低了内存泄漏的可能性,这对于高...

    ecshop文件

    ECSHOP是一款基于PHP语言开发的开源电子商务系统,它为中小企业提供了构建在线商店的解决方案。在"ecshop文件"中,我们可能涉及到以下几个关键知识点: 1. PHP基础:ECSHOP是用PHP编写的,因此理解PHP的基础语法、...

    ECSHOP2.7.2 仿京东模板,附带静态压缩缓存功能

    这套模板整合了页面静态缓存+压缩输出功能,但是下载模板后,即使不使用这套模板,经过设置的缓存策略同样会对ECShop当前应用的模板有效。 所以这个功能是可以独立使用的。 下载后,覆盖到EC安装路径下,(EC程序...

    ecshop 2.7.3 php 5.5 修改版 utf-8

    1. **OPcache**:这是一个内置的opcode缓存器,能够显著提高PHP脚本的执行速度,减少了对磁盘I/O的依赖,提高了服务器性能。 2. **intl扩展升级**:PHP 5.5中,国际化(Intl)扩展得到了增强,提供了更多的本地化...

    ecshop源码(php)

    ECSHOP是一款基于PHP语言开发的开源电子商务系统,它为中小型企业提供了构建网上商城的高效解决方案。在本文中,我们将深入探讨ECSHOP源码的核心知识点,以及如何利用这些知识来理解和优化你的电子商务平台。 一、...

    68商之翼版ecshop

    "68商之翼版ecshop"是一款基于PHP开发的电子商务平台,专为中小企业和商家提供二次开发服务的商城系统。ECSHOP是一款流行的开源电商软件,它以其易用性、灵活性和丰富的功能集而受到众多用户的青睐。在这款68商之翼...

    基于PHP的Ecshop韩都衣舍最新豪华版源码.zip

    Ecshop是一款基于PHP语言开发的开源电子商务系统,广泛应用于搭建各类网上商城。"基于PHP的Ecshop韩都衣舍最新豪华版源码.zip" 文件很可能包含的是 Ecshop 的定制化版本,特别为韩都衣舍这家知名的在线零售商进行了...

    Ecshop page_caches

    "Page Caches"是Ecshop中的一种缓存机制,旨在提升网页的加载速度,从而改善用户浏览体验。 页面缓存(Page Cache)是一种常见的Web性能优化技术,它通过存储静态或动态生成的HTML页面到内存或硬盘上,当用户请求...

    php/cms/ecshop标签生成器

    ECShop是一款基于PHP开发的开源电子商务系统,专为中小企业打造,提供强大的商品管理和在线销售功能。"php/cms/ecshop标签生成器"是一个针对ECShop的扩展工具,旨在帮助开发者更便捷地创建和管理自定义标签,提升...

    ecshop 模板代码分析

    EcShop是一款基于PHP开发的开源电子商务系统,它的模板引擎采用了Smarty。Smarty是一个广泛使用的PHP模板引擎,它将业务逻辑与视图分离,使得开发者能够更方便地管理和设计网站的前端界面。在这里,我们将深入探讨...

    ecshop_init.php文件分析

    《ecshop_init.php文件分析:理解ECShop框架的初始化过程》 在深入解析ECShop的初始化文件ecshop_init.php之前,我们先来了解ECShop是什么。ECShop是一款基于PHP和MySQL构建的开源网上商店系统,它由上海商派网络...

    ecshop 修改商品销量,在前台显示

    步骤5:如果你发现模板文件中的销量值没有更新,可能是因为ECSHOP缓存了数据。这时,需要清理ECSHOP的缓存,这通常可以通过后台的“系统设置”或“缓存管理”功能完成。 步骤6:完成以上步骤后,刷新前端页面,你...

    ecshop的调试模式

    当`DEBUG_MODE`设置为2时,Ecshop会禁用所有缓存功能。这有助于开发者确保看到的是最新的数据和状态,而不是可能过时的缓存内容。对于开发和测试环境来说,这是一个有用的设置,但在生产环境中应重新启用缓存以提高...

Global site tag (gtag.js) - Google Analytics