php浏览器缓存解决高并发
我在页面头部这样写了一个缓存,
<?php <br />$cache_time = 60*10; //十分钟缓存<br />$modified_time = @$_SERVER['HTTP_IF_MODIFIED_SINCE']; <br />if( strtotime($modified_time)+$cache_time > time() ){ <br /> header("HTTP/1.1 304"); <br /> exit; <br />} <br />header("Last-Modified: ".gmdate("D, d M Y H:i:s", time() )." GMT"); <br />echo "<br />";<br />echo date('Y-m-d H:i:s',time()); <br />?>
问题一:
浏览器在这十分钟之内只会从浏览器去取数据;问题二:
如果数据库的数据更新,动态页面就不是动态页面的,读的还是浏览器的。怎样可以做到页面更新,缓存重新开始计算呢?有什么办法可以页面变动缓存重新开始?
在线求告诉回答!大家一般都是怎么解决高并发的问题的呢?
------解决方案--------------------php只能做一些数据缓冲,解决高并发需要从服务器入手,比如你的Apache,Ngix缓存可以参考smarty
------解决方案--------------------调用缓存是在,数据没有更新的时候,去调用缓存,在调用缓存的时候应该去判断 数据是否更新 如果存在更新 你再去重新请求数据
------解决方案--------------------你這種緩存刷新就會更新。
------解决方案--------------------每次访问页面,浏览器都会像服务端发起请求,你看到的304,200等是服务端告诉浏览器的,而不是浏览器自己判定的。对于动态页面,即使你设了缓存时间,如果数据变动,默认还是会返回最新的数据,而不是浏览器缓存的数据。
------解决方案--------------------做缓存的话不一定要这么做,可以用memcache,比你这么弄好... 个人想法
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn