• dhtmlxtree动态加载节点数据的小随笔


    最近做了一个这个东西,颇有些感触,随笔记录一下自己的过程。

    首先特别感谢:https://blog.csdn.net/cfl20121314/article/details/46852591,对我的帮助还是挺大的,虽然代码我运行不起来,但是报错信息让我少走了一些弯路。

    需求:本地静态xml文件,一次性加载速度太慢,需要优化性能。(树结构数据都是本地静态文件,不涉及到数据库操作)

    遇到这个问题首先先是百度,去研究一下dhtmlxtree 中文api文档,百度很久,基本结果都是很简单的说明文字,可以说基本都是一个方法名称,其余全靠猜,个人英文不好,难啊。

    第一步就难住了,设置tree动态加载,这个该怎么设置?通过api得知,tree.setXMLAutoLoading(filepath),但是其中的路径难住了,这看到几种例子

    1.直接是一个xml路径

    2.是一个后台请求路径(java的,webapi的,mvc的等等语法写法)

    对于我来说,我需要单击某一个父节点,加载所有子节点,所以这里肯定不能是一个静态xml文件路径,所以目光只能是第二种,所以很自然写了个后台方法(开始测试。后续再说。)

    事情还是要继续进行下去,于是有了以下几种尝试:

    1.将原本的一个xml文件,改为两个xml,其中一个只保留所有的一级父节点结构数据,另一个xml文件则保留所有数据,目的是想初始化加载父节点xml,其次通过单击父节点,去第二个xml文件查所有的子节点

    这种想法很自然,但是操作过程颇为心酸。

    1)加载父节点xml很顺利,那怎么加载子节点?通过后端读取完整xml文件再去查询某一个id的子节点数据。

    2)直接将完整的xml文件进行拆分,拆分为一个个单独的子节点xml文件

    图方便选择了第二种,因为都是纯静态xml操作。拆分完毕。

    犹由于我的项目是wcf架构,所以mvc的写法是:return XmlResult无法使用,设置resopnse type无法使用,java的看不懂基本也是设置返回值的type

    尝试:

    1.直接返回stream,果然提示load xml error

    2.将流序列化,也属于胡乱尝试,卒+1

    3.无果开始研究wcf如何返回xml数据,找到一个xmldocument,无果

    4.继续找,发现一个xmlelement 找到答案。http://www.it1352.com/449260.html,最终搞定问题。

    写的比较乱,记录一下自己从发现问题,到开始解决问题,到一筹莫展,到最终解决的一个过程。

    百度的东西有很多和自己的应用场景不一致,比如百度的基本要么都是从后端加载,要么就是全部一次性加载,有的虽然说是异步,但是实际却不是。总的来说鱼龙混杂的信息太多。

    还是要学会分析,找出自己需要的。

  • 相关阅读:
    <JavaScript> 组合继承
    <JavaScript> 稳妥构造函数模式与工厂模式的区别
    <JavaScript> call()、apply()、bind() 的用法
    <JavaScript>可枚举属性与不可枚举属性
    <JavaScript>闭包(closure)
    在MongoDB中实现聚合函数
    (转)如何入门 Python 爬虫
    Python爬虫实战四之抓取淘宝MM照片
    转载:十年驾车经验总结:活着,才是硬道理
    设计模式之单例模式的七种写法
  • 原文地址:https://www.cnblogs.com/daiyonghui/p/10697839.html
Copyright © 2020-2023  润新知