目录
回复讨论(解决方案)
首页 后端开发 php教程 请教SMARTY 发帖后clearCache 文章列表的逻辑

请教SMARTY 发帖后clearCache 文章列表的逻辑

Jun 23, 2016 pm 01:51 PM
发帖 文章 逻辑

文章列表的samrty代码如下

$smarty -> setCacheDir(ROOT_PATH."/cache/forum");$smarty -> display("$module/list.html",$_SERVER["REQUEST_URI"]);
登录后复制

ROOT_PATH = 我的根目录
$module = 我PHP开头会自定当前是什么模组,自己找模板中的子目录

因为文章多, 架构多, 不同的模组也多...所以想到把cache 和 template都做成子目录
template子目录为了方便找文件
cache子目录...是因为怕同一个目录中文件过多,分子目录也会以便我按照不同的模组清理缓存

我在display加入了一句:$_SERVER["REQUEST_URI"]

因为是分页,还有可能是其他的变量

我页面上暂时最多有可能有3个参数 list.php?fid=1&type=20&page=3

fid=栏目 (必定有)
type=主题分类 (看情况, 有些页面有, 有些页面没有)
page=当前页面 (必定有)

因为参数不同,所以也可能生成不同的文件

使用smarty主要就是为了减轻数据库压力



问题一.

我在一个名为post.php的页面发表文章

发表完成时会有一些基本的数据,好比$fid = 1 (栏目id),我就想用此栏目id,把当然栏目的cache 清理

就是这个: list.php?fid=1&type=20&page=3

有办法有所有fid = 1有关的都清理吗?

就是只要fid = 1 ,不管其他参数type=100还是type=5,还有所有page=xxx的都更新吗?



问题二.
SMARTY官方 和网上搜到的简介....
清空CACHE只有这一句
clear_cache('index.tpl',cache_id);//清除指定id的缓存
登录后复制
 

并不能清空指定的目录
因为上面也解释过我是有用模板子目录的



问题三.
经验一问

如果我想更实时一点,网站又蛮多人上的,我把解决问题一和问题二,反而把samrty cache时间设成10秒

那如果是一个长期有500~2000人的网站,用户常常留言/交流的网站

我设成10秒左右的缓存会不会比起不缓存更大压力???

我这种情况大家会把流量写得更...每次回帖/发文章都清空缓存,还是直接放弃缓存?



不好意思,已经没什么分献给各位大哥了

诚心求学


回复讨论(解决方案)

一直变化的不建议使用缓存,也可以采用像QQ空间那样用ajax来加载。这个只是我的愚见。

比?奇怪,既然你比?注重的是??,那就不?用?存了。
即使要用?存,那都需要每?行完一?事件後,??的?存就必?重新生成。才能?到??的效果。

?於文章列表,如果你一天?,每分?都?增加或修改新文章的。那?存的作用就不大。

如果是一天?,可能新增的文章?修改?不多。那可以在後?做一?功能。?用?清一次列表的?存。

其?保存?存的路?,目???你都知道,完全可以自己?一?清cache的???啊,?甚?要??用smarty自?的呢?
smarty是按cacheid做判?的,不?合你的情?。

比较奇怪,既然你比较注重的是实时,那就不应用缓存了。
即使要用缓存,那都需要每执行完一个事件后,对应的缓存就必须重新生成。才能达到实时的效果。

对于文章列表,如果你一天内,每分钟都会增加或修改新文章的。那缓存的作用就不大。

如果是一天内,可能新增的文章与修改数不多。那可以在后台做一个功能。调用则清一次列表的缓存。

其实保存缓存的路径,目录规则你都知道,完全可以自己写一个清cache的类实现啊,为甚么要纠结用smarty自带的呢?
smarty是按cacheid做判断的,不适合你的情况。


所以我在想

我的列表像论坛一样,按照最新回覆排列

如果每分钟...甚至每10~20秒都有人回覆.....而列表又有30~40页的话

每10~20秒都要清理一次CACHE

不管是 回覆文章后的满足条件而清理还是自动设定CACHE有效时间为15秒

要不停的清理缓存文件...然后而生成缓存....是否都比起不缓存更加重主机负担??? 

自推一把,求建议

列表页缓存应在相关文章添加时删除
列表页缓存可在再次访问时自动生成,也可在文章发布后主动生成
如果是采用后者,那么列表页可直接为静态,或缓存永不过期。以减少检查缓存是否过期的开销

列表页缓存应在相关文章添加时删除
列表页缓存可在再次访问时自动生成,也可在文章发布后主动生成
如果是采用后者,那么列表页可直接为静态,或缓存永不过期。以减少检查缓存是否过期的开销


谢谢你
但如果大约每分钟都有2~3个回覆

列表是以最新回覆排序

如果列表已有30~40分
每次排序不是也要删除再生成30~40页页吗?

你建议使用CACHE吗?

你的列表是论坛的帖子列表吗?这一点你并没有说明噢
如果是,在不需要缓存
如果是文章列表,可以缓存。因为回覆不影响列表顺序。至多影响到“最新动态”列表

主动生成列表页或清除缓存时,都是以导航条跨距为限的
因为访问超出导航条跨距的页面时,缓存早就已经过期了

如果两三分钟就用新文章上线,就表示这个网站活动频繁。所以缓存就是非常必要的了

你的列表是论坛的帖子列表吗?这一点你并没有说明噢
如果是,在不需要缓存
如果是文章列表,可以缓存。因为回覆不影响列表顺序。至多影响到“最新动态”列表

主动生成列表页或清除缓存时,都是以导航条跨距为限的
因为访问超出导航条跨距的页面时,缓存早就已经过期了

如果两三分钟就用新文章上线,就表示这个网站活动频繁。所以缓存就是非常必要的了


其实系统和论坛几乎就是一样了

因为其他功能关系到会员权和积分,所以没用别人的,只能自己做个简单的

是自己用PHP+SMARTY做的

如果是论坛列表就不用缓存了?

只要回覆会影响到排名...就不建议做缓存了是吧?


顺道一问,不知大家了不了解,DZ,PW他们是不是只有首页做了cache,列表文章都没有cache的?

这与你的具体应用是有关系的
论坛总是要把新帖和有新回复的放在前面,以引起注意
所以缓存就没有意义了

这与你的具体应用是有关系的
论坛总是要把新帖和有新回复的放在前面,以引起注意
所以缓存就没有意义了

谢谢

明白了
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法! 今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日头条发布文章怎么才能有收益?今日头条发布文章获得更多收益方法!1.开通基础权益:原创文章选择投放广告可获得收益,视频必须要原创横屏才会有收益。2.开通百粉权益:粉丝量达到百粉以上,微头条、原创问答创作及问答均可获得收益。3.坚持原创作品:原创作品包含文章、微头条及问题等,要求300字以上。注意违规抄袭作品作为原创发布,会被扣信用分,即使有收益也会被扣除。4.垂直度:做专业领域一类的文章,不能随意跨领域写文章,会得不到合适的推荐,达不到作品的专和精,难以吸引粉丝读者。5.活跃度:活跃度高,

如何在HTML5中添加文章? 如何在HTML5中添加文章? Sep 12, 2023 am 11:37 AM

在本文中,我们将学习如何在HTML5中添加文章。HTML5中的新分段元素之一是标记。文章使用标签以HTML形式表示。更具体地说,元素中包含的内容与网站的其余内容不同(即使它们可能相关)。让我们考虑以下示例来了解如何在HTML5中添加文章示例1在以下示例中,我们在文章元素中使用内联样式。<!DOCTYPEhtml><html><body><articlestyle="width:300px;border:2pxsolidgray;padding:

防范Java中的逻辑漏洞 防范Java中的逻辑漏洞 Aug 07, 2023 pm 01:13 PM

防范Java中的逻辑漏洞在软件开发中,逻辑漏洞是一种常见的安全问题。当程序逻辑出现错误或者设计缺陷时,攻击者可以利用这些漏洞来绕过程序的安全机制,从而实施恶意操作。Java作为一种广泛应用的编程语言,同样需要注意防范逻辑漏洞。本文将介绍一些常见的Java逻辑漏洞,并给出相应的防范措施。一、防范条件竞争条件竞争是指程序在某个状态下,另一个线程修改了这个状态,从

使用一个神器的指令,能迅速让你的GPT拥有智慧! 使用一个神器的指令,能迅速让你的GPT拥有智慧! May 09, 2023 am 08:13 AM

今天给大家分享二个小技巧,第一个可以增加输出的逻辑,让框架逻辑变的更加清晰。先来看看正常情况下GPT的输出,以用户增长分析体系为例:下来我给加一个简单的指令,我们再对比看看效果:是不是效果更好一些?而且逻辑很清晰,当然上面的输出其实不止这些,只是为了举例而已。我们直接让GPT扮演一个资深的Python工程师,帮我写个学习计划吧!提问的时候只需后面加以下这句话即可!let'sthinkstepbystep接下来再看看第二个实用的指令,可以让你的文章更上一个台阶,比如我们让GPT写一个述职报告,这里

解读 Vitalik 新文:为什么 Blob 空间未被高效使用的 Rollup 陷入了发展困境? 解读 Vitalik 新文:为什么 Blob 空间未被高效使用的 Rollup 陷入了发展困境? Apr 01, 2024 pm 08:16 PM

如何理解@VitalikButerin新文对以太坊的扩容思考?有人说Vitalik给Blob铭文喊单,离大谱。那么Blob数据包如何工作?坎昆升级后Blob空间为啥得不到高效利用?DAS数据可用性采样是为分片做准备?在我看来,坎昆升级后性能够用了,Vitalik是对Rollup发展忧心忡忡。Why?接下来,我来谈谈我的理解:在之前多次解释过,Blob是和EVMcalldata脱钩的一个直接可被共识层调取的临时数据包,直接好处是,EVM在执行交易时可以不访问Blob数据,因此产生了较低的执行层计算

十分钟理解ChatGPT的技术逻辑及演进(前世、今生) 十分钟理解ChatGPT的技术逻辑及演进(前世、今生) May 30, 2023 pm 03:00 PM

0、前言11月30日,OpenAI推出了一个名为ChatGPT的AI聊天机器人,可以供公众免费测试,短短几天就火爆全网。从头条、公众号上多个宣传来看,它既能写代码、查BUG,还能写小说、写游戏策划,包括向学校写申请书等,貌似无所不能。本着科(好)学(奇)的精神,抽了一些时间对ChatGPT进行了了测试验证,并且**梳理了一下ChatGPT为什么能这么"强"**。由于笔者并没有专业学过AI,同时精力受限,所以短时间内就不会再有AI-003类似更深入到技术的篇章了,了解001、0

微信同时发送文章和录音的详细方法 微信同时发送文章和录音的详细方法 Mar 26, 2024 am 09:16 AM

1、打开手机,点击微信软件,进入微信的主页设置。2、找到微信右下角【我的】打开,进入【我的】页面。3、点击收藏,然后打开新页面。

如何在Vue中使用路由实现登录鉴权和页面跳转逻辑? 如何在Vue中使用路由实现登录鉴权和页面跳转逻辑? Jul 21, 2023 pm 05:09 PM

如何在Vue中使用路由实现登录鉴权和页面跳转逻辑?概述:在Vue中,路由(VueRouter)是一个非常重要的工具,它可以帮助我们实现页面之间的跳转和管理。但在实际开发中,我们常常需要添加登录鉴权功能,以确保用户在未登录状态下无法访问需要授权的页面。本文将介绍如何使用VueRouter实现登录鉴权和页面跳转逻辑,并提供相关的代码示例。步骤一:安装和配置V

See all articles