一个度娘解决不了的问题,望牛人解答。
前台一次性加载完数据,然后在刷新页面不会向数据库发送请求了,数据还是能加载,请问怎么实现。 java web --------------------编程问答-------------------- 什么意思,没看明白。是异步取数据吗? --------------------编程问答-------------------- 加入前台是个树,我一次性加载完了。然后,我在刷新页面,不会向后台数据库再次发送查询语句了,而前台页面正常加载,请问怎么实现 --------------------编程问答-------------------- 刷新页面,不会向后台数据库发送查询语句---如果只是这样的话,那应该是后台做了缓存吧.. --------------------编程问答-------------------- 这是我的想法,你看看行不。我假如在前台页面用jquery构造了一个ztree。把ztree放到一个div中。在页面加载的时候通过jquery判断这个div中有没有值,如果没有就用ajax去获取数据,构造ztree,要是这个div中有数据就不在执行,这样就会去访问数据库了。你试试这种方法可行不。 --------------------编程问答-------------------- 这个是今天项目经理让我想的,这是一个优化方面的,就是减少数据库的访问量,用的就是ztree,就是一次性加载,在刷新无加载,他跟我说跟static的机制差不多,可我没想明白,求解。 --------------------编程问答-------------------- OSCache --------------------编程问答-------------------- 如果只是不查数据库,可以用OSCache等缓存机制。
如果不想从服务器下载数据,那就只能在浏览器的Cookies里保存数据了。 --------------------编程问答--------------------
就是让你用缓存 ~~ --------------------编程问答-------------------- 前台一次性加载完数据,(所有需要的数据查询数据库)
(把这些数据放入缓存里 ehcache memcached等缓存服务)
然后在刷新页面不会向数据库发送请求了,(网页刷新请求都是从缓存中去取数据)
(数据在加载回来)
(更新数据库的时候再对缓存中的数据更新)
一般常用于首页,查询页等数据量大的页面.基本上是这个流程.访问量大的可以采用缓存集群
static 也可以 不过大数据量还是选择一个缓存架构比较好.
下面手写代码只是个例子
public static List<String> cahcheList = null;
public String excute(){
//执行返回数据给前台
List<String> returnList = getData();
}
public List<String> getData(){
if(null != cacheList){
return cacheList;
}else{
cacheList = getDataFromDB();
return cacheList;
}
}
public List<String> getDataFromDB(){
//从数据库获取数据返回
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("n");
return list;
}
不过看你的需求 大概static 就可以了..数据量不是很大
不过有更新/添加/或者删除你都需要维护这个static 的缓存变量. --------------------编程问答-------------------- HTML5本地存储 --------------------编程问答--------------------
static 言外意就是 启动服务器就进行查询 乱猜的 --------------------编程问答-------------------- 刷新页面本地的树结构是肯定会没有的除非你自己做了缓存,好像就10楼说到关键的地方了,浏览器做缓存的只有cookie和html5的本地存储。可是这好像不是楼主要的东西。
不在本地存的话,刷新,不加载,是不可能的! --------------------编程问答-------------------- 1.用数据库缓存
2.用程序把树可以写成静态文件(html) --------------------编程问答-------------------- 数据与页面分离,使用xml传送数据,这样可以对数据单独缓存 --------------------编程问答-------------------- 就直接缓存在后台,保存在前台不安全啊,而且也不好做更新操作嘛 --------------------编程问答-------------------- 前台是指客户端 --------------------编程问答-------------------- 利用cache技术!
补充:Java , Java EE