ThinkPHP局部缓存思路

首先给大家科普一下:

tp中是没有局部缓存的,只有全局缓存,局部缓存至今ThinkPHP也没有给出一个完美的解释,所以由此人们就只能自行靠自己的办法来解决这个问题了(ajax局部刷新),大家要知道tp在进行缓存时只可以进行一个全局缓存并且是只缓存页面经过PHP处理之后数据,是不会将在HTML页面写的PHP代码一起缓存的,所以就有了使用了ajax提交页面来替换不想进行缓存的数据(缓存是不会阻止ajax的运行的)。

大概思路:

首先在ThinkPHP框架的配置文件config中添加上tp自带的全局缓存,然后在添加缓存的页面添加上一个ajax请求,通过ajax进行一个局部刷新替换就可以了。

下面来演示一下具体的实现步骤:

第一步:在框架的配置文件中添加上用于缓存的配置


在运行页面之后,大家可以看到在框架中会重新出现一个与Home模块同级的目录Html,打开会发现里面会有一个文件为刚刚在配置里面所写的以collection为文件名称的文件,此时,ThinkPHP的全局静态就做好了。

第二部:在要添加缓存的页面添加一个ajax请求


使用ajax请求来获取想要在页面动态展示的数据,但是此时页面是正在使用缓存的页面,但是你会发现,你说写的ajax请求还会照常发送,不会因为是缓存页面而终止ajax发生请求,此时你就可以使用ajax来得到你想要得到的数据了,而现在数据得到了之后就可以进行一个替换功能了,也就是说进行所谓的局部刷新了

ThinkPHP 6.0提供了多种缓存方式,包括文件缓存、Redis缓存、Memcached缓存、数据库缓存等等。下面分别介绍一下这些缓存方式的使用方法。 文件缓存: 文件缓存是指将数据缓存到文件中,通常情况下建议将文件缓存存储在 /runtime/cache 目录下。下面是一个文件缓存的使用示例: ```php use think\Cache; // 写入缓存 Cache::set('name', 'thinkphp', 3600); // 读取缓存 $name = Cache::get('name'); ``` Redis缓存: Redis缓存是指将数据缓存到Redis数据库中,需要配置Redis连接信息。下面是一个Redis缓存的使用示例: ```php use think\Cache; // 配置Redis连接信息 Cache::connect([ 'type' => 'redis', 'hostname' => '127.0.0.1', 'port' => 6379, 'password' => '', 'select' => 0, 'timeout' => 0, 'expire' => 3600, 'persistent' => false, 'prefix' => '', ]); // 写入缓存 Cache::set('name', 'thinkphp', 3600); // 读取缓存 $name = Cache::get('name'); ``` Memcached缓存: Memcached缓存是指将数据缓存到Memcached服务器中,需要配置Memcached连接信息。下面是一个Memcached缓存的使用示例: ```php use think\Cache; // 配置Memcached连接信息 Cache::connect([ 'type' => 'memcached', 'hostname' => '127.0.0.1', 'port' => 11211, 'expire' => 3600, 'prefix' => '', ]); // 写入缓存 Cache::set('name', 'thinkphp', 3600); // 读取缓存 $name = Cache::get('name'); ``` 数据库缓存: 数据库缓存是指将数据缓存到数据库中,需要配置数据库连接信息。下面是一个数据库缓存的使用示例: ```php use think\Cache; // 配置数据库连接信息 Cache::connect([ 'type' => 'db', 'table' => 'think_cache', 'expire' => 3600, ]); // 写入缓存 Cache::set('name', 'thinkphp', 3600); // 读取缓存 $name = Cache::get('name'); ``` 以上是ThinkPHP 6.0常用的缓存方式,具体使用方法可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值