목차
回复讨论(解决方案)
백엔드 개발 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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있나요? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! 오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있나요? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! Mar 15, 2024 pm 04:13 PM

1. 오늘 Toutiao에 기사를 게시하여 어떻게 돈을 벌 수 있습니까? 오늘 Toutiao에 기사를 게시하여 더 많은 수입을 얻는 방법! 1. 기본 권익 활성화: 기사의 원본은 광고를 통해 수익을 얻을 수 있으며, 동영상은 가로 화면 모드에서 원본이어야 수익을 얻을 수 있습니다. 2. 팬 100명 권리 활성화: 팬 수가 100명 이상에 도달하면 마이크로 헤드라인, 오리지널 Q&A 작성, Q&A 수익을 얻을 수 있습니다. 3. 독창적인 작품을 고집하라: 독창적인 작품에는 기사, 마이크로 헤드라인, 질문 등이 포함되며, 300단어 이상이어야 합니다. 불법 표절 저작물을 원작으로 출판할 경우 크레딧 점수가 차감되며, 수익금도 차감되므로 주의하시기 바랍니다. 4. 수직성: 전문 분야에서 기사를 작성할 때 분야를 넘나들며 마음대로 기사를 작성할 수 없으며 적절한 추천을 받을 수 없으며, 작품의 전문성과 정확성을 확보할 수 없으며 팬을 유치하기가 어렵습니다. 그리고 독자들. 5. 활동: 높은 활동,

아티팩트 명령을 사용하면 GPT를 빠르게 스마트하게 만들 수 있습니다! 아티팩트 명령을 사용하면 GPT를 빠르게 스마트하게 만들 수 있습니다! May 09, 2023 am 08:13 AM

오늘 저는 두 가지 팁을 공유하고 싶습니다. 첫 번째 팁은 출력 로직을 늘리고 프레임워크 로직을 더 명확하게 만들 수 있습니다. 먼저 사용자 성장 분석 시스템을 예로 들어 일반적인 상황에서 GPT의 출력을 살펴보겠습니다. 다음으로 간단한 명령을 추가하고 효과를 비교하고 살펴보겠습니다. 효과가 더 좋습니까? 물론 논리는 매우 명확합니다. 위의 출력은 실제로 그 이상입니다. 이는 단지 예일 뿐입니다. GPT가 선임 Python 엔지니어 역할을 하여 제가 학습 계획을 작성할 수 있도록 도와드리겠습니다! 질문하실 때, 질문 뒤에 다음 문장을 추가해주세요! 단계별로 생각해보자. 기사를 더 높은 수준으로 끌어올릴 수 있는 두 번째 실용적인 명령을 살펴보겠습니다. 예를 들어 여기에서 GPT에 작업 보고서 작성을 요청해 보겠습니다.

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 논리 취약점을 소개하고 해당 예방 조치를 제공합니다. 1. 경쟁 조건 방지 경쟁 조건은 프로그램이 특정 상태에 있을 때 다른 스레드가 이 상태를 수정한다는 것을 의미합니다.

Vitalik의 새 기사 해석: Blob 공간이 효율적으로 사용되지 않는 Rollup이 개발 어려움에 빠지는 이유는 무엇입니까? Vitalik의 새 기사 해석: Blob 공간이 효율적으로 사용되지 않는 Rollup이 개발 어려움에 빠지는 이유는 무엇입니까? Apr 01, 2024 pm 08:16 PM

Ethereum의 확장에 대한 @VitalikButerin의 새 기사 생각을 어떻게 이해합니까? 어떤 사람들은 Vitalik의 Blob Inscription 주문이 터무니없다고 말합니다. 그렇다면 Blob 패킷은 어떻게 작동합니까? 칸쿤에서 업그레이드한 후 Blob 공간이 효율적으로 사용되지 않는 이유는 무엇입니까? 샤딩 준비를 위한 DAS 데이터 가용성 샘플링? 제 생각엔 칸쿤의 성능은 업그레이드 이후에 쓸만할 것 같은데, 비탈릭은 롤업의 발전을 고민하고 있습니다. 왜? 다음으로 내 이해에 대해 이야기하겠습니다. 이전에 여러 번 설명했듯이 Blob은 EVM 호출 데이터에서 분리되어 합의 계층에서 직접 호출할 수 있는 임시 데이터 패키지입니다. 직접적인 이점은 EVM이 Blob에 액세스할 필요가 없다는 것입니다. 트랜잭션을 실행할 때 실행 계층 계산이 낮아집니다.

위챗을 통해 기사와 녹음을 동시에 보내는 세부 방법 위챗을 통해 기사와 녹음을 동시에 보내는 세부 방법 Mar 26, 2024 am 09:16 AM

1. 휴대폰을 열고 WeChat 소프트웨어를 클릭한 후 WeChat 홈페이지 설정으로 들어갑니다. 2. 위챗 우측 하단의 [내]를 찾아 열어 [내] 페이지로 들어갑니다. 3. 컬렉션을 클릭한 후 새 페이지를 엽니다.

오토홈에 게시하는 방법 오토홈에 게시하는 방법. 오토홈에 게시하는 방법 오토홈에 게시하는 방법. Mar 23, 2024 pm 05:11 PM

오토홈 앱은 무료이고 정품인데, 특히 사용자들의 최신 자동차 정보 등을 느낄 수 있기 때문에 많은 사용자들이 원하는 자동차를 빠르게 찾을 수 있습니다. 좀 더 편안하고 편안하게 채팅, 시청 등을 즐길 수 있어서 좋습니다. 포스팅을 올리는 것도 좋습니다. 오늘은 간단하게 설명드리겠습니다. 오토홈 게시에 대한 구체적인 지침: 1. 오토홈을 엽니다. 2. 하단의 포럼을 클릭합니다. 3. 주제를 클릭하고 게시하려는 주제를 선택합니다. 4. 오른쪽 하단의 더하기 기호를 클릭합니다. 코너에 글을 작성하시면 됩니다. 5 .오른쪽 상단의 게시를 클릭하시면 성공적으로 게시됩니다.

Vue에서 라우팅을 사용하여 로그인 인증 및 페이지 점프 논리를 구현하는 방법은 무엇입니까? Vue에서 라우팅을 사용하여 로그인 인증 및 페이지 점프 논리를 구현하는 방법은 무엇입니까? Jul 21, 2023 pm 05:09 PM

Vue에서 라우팅을 사용하여 로그인 인증 및 페이지 점프 논리를 구현하는 방법은 무엇입니까? 개요: Vue에서 라우팅(VueRouter)은 페이지 간 이동 및 관리에 도움이 되는 매우 중요한 도구입니다. 하지만 실제 개발에서는 사용자가 로그인하지 않은 상태에서 승인이 필요한 페이지에 접근할 수 없도록 로그인 인증 기능을 추가해야 하는 경우가 많습니다. 이 기사에서는 VueRouter를 사용하여 로그인 인증 및 페이지 점프 로직을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다. 1단계: V 설치 및 구성

See all articles