最近评论
正在载入评论列表...
![]() |
![]() |
分类树或树形结构在Web应用系统中使用得非常广泛,例如部门结构、文档的分类结构常常使用树形控件呈现。以前每次对分类树的操作都会引起页面重载,为了避免这种情况出现,一般不采用每次调用后台的方式,而是一次性将分类结构中的数据全部读取出来并写入数组,然后根据用户的操作,用JavaScript来控制节点的呈现,这样虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题,但是如果用户不对分类树进行操作或者只对分类树中的一部分数据进行操作的话(这种情况是很普遍的),那么读取的数据中就会有相当大的冗余,浪费了用户的资源。特别是在分类结构复杂、数据量庞大的情况下,这种弊端就更加明显了。
现在应用Ajax改进分类树的实现机制。在初始化页面时,只获取第一级子分类的数据并且显示;当用户点开一级分类的某一节点时,页面会通过Ajax向服务器请求当前分类所属的二级子分类的所有数据;如果再继续请求已经呈现的二级分类的某一节点时,再次向服务器请求当前分类所属的三级子分类的所有数据,以此类推。页面会根据用户的操作向服务器请求它所需要的数据,这样就不会存在数据的冗余,减少了数据下载总量。同时,更新页面时不需要重载所有内容,只更新需要更新的那部分内容即可,相对于以前后台处理并且重载的方式,大大缩短了用户的等待时间。