日期:2014-05-16  浏览次数:20744 次

Ajax 调用数据库的数据生成超慢 - Web 开发 / Ajax
各位大大,请教下页面读取较多数据后如何快速显示?

我的页面功能是需要查询本月内某段时间内的信息。数据行大约600条,每条数据量在500到1000个字符之间。每次在显示到页面后非常的慢,我用ajax读取后会有数据缓存但这样又无法读取到更新的数据重新下载数据又造成延时。

请教下如何能提高页面的显示速度。

备注,数据的容器是Table.



------解决方案--------------------
ajax 传输是用xml 还是 json?
------解决方案--------------------
可能是你获取信息的页面处理慢了.
------解决方案--------------------
服务器可以缓存数据
只在第一次 或者间隔多少时间后才真正去数据库拿数据

------解决方案--------------------
用firebug看一下加载页面用了多少时间,判断前台还是后台的问题
------解决方案--------------------
用异步读取数据的方法NAjax.VideoHot(tags,playedids,upcarbk);
function upcarbk(response) {
document.getElementById('hot').innerHTML = response.value;
}

NAjax.VideoHot为你的AJAX方法,数据获取在upcarbk中实现,这样就做到了异步获取数据了
------解决方案--------------------
建议你Hibernate

我说的Session是Hibernate的Session 而不是servlet里的,区分清楚

因为他有session支持缓存
你每一回调用的时候他回到Session里面找有没有
如果有直接返回
如果没有直接生成,这样当然是慢了,你每一回调用的时候他都会新生成一个新的

使用Hibernate就不一样了
只要访问了Session里面就会有值,就避免了每一回都生成一个新的

这样你的网站运行速度只会运行速度越久,查询数据就越快
------解决方案--------------------
600条数据,每条500-1000个字符,
数据量很大啊,用dom解析可能有点慢,用SAX试一试。

怎么不做分页?
难道你要一次把全部显示在页面上么?
------解决方案--------------------
探讨

sqlstr="select * from ypmerch where finish_result="&modkey
if modkey=0 then
sqlstr=sqlstr&" order by merch_id"
else
sqlstr=sqlstr&" order by ex_factory"
end if

rs.open……

------解决方案--------------------
把不必要的数据动态加载出来。
------解决方案--------------------
直接返回json.在前台循环row