代码之家  ›  专栏  ›  技术社区  ›  Daniel Dyson

如何延迟加载基础架构超WebTree控件?

  •  0
  • Daniel Dyson  · 技术社区  · 15 年前

    我找不到任何关于如何延迟加载Infrasgics UltraWebTree6.3的示例。

    我发现基础设施网站上的文档往往仅限于其控件的最新版本,但这是一个传统的应用程序,我无法升级。是否有人获得示例代码或链接来演示如何在该控件中延迟加载节点?

    当前的实现我们已经加载了1.35MB的HTML,因为它正在填充整个树!哎呀!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Daniel Dyson    15 年前

    它变成了一个简单的jquery和一个返回渲染节点的WebService。

    任何具有子项的节点都会用文本“loading…”初始化,以便脚本知道要尝试检索它们。

    <script type="text/javascript" language="javascript">
        var imageTypeExpression = "img[imgType='exp'][src$='plus.gif']";
        var maxRetries = 5;
        jQuery(document).ready(function() {
            jQuery("#T_TreeListCtl " + imageTypeExpression).click(imageClick);
            jQuery("#tdLists").show();
        });
    
        function imageClick() {
            var parentDivId = jQuery(this).parent().attr('id');
            var nodesDiv = '#M_' + parentDivId;
            if (jQuery(nodesDiv).text() == 'Loading...') {
                getNodes(parentDivId, nodesDiv, maxRetries);
            }
        }
    
        function getNodes(parentDivId, nodesDiv, retryCount){
            if (retryCount == 0) {
                jQuery(nodesDiv).html("<div>Loading... failed.</div>");
            }
            else {
                jQuery.ajax({ type: "POST",
                    url: "WebServices/TreeNodes.asmx/GetChildNodes",
                    data: "{'parentId' :'" + parentDivId + "'}",
                    dataType: "json",
                    contentType: 'application/json; charset=utf-8',
                    success: function(json) {
                        var result = eval("(" + json.d + ")");
                        jQuery(nodesDiv).html(result.value);
                        jQuery(imageTypeExpression, nodesDiv).click(imageClick);
                    },
                    timeout: 100,
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        if (textStatus == 'timeout') {
                            getNodes(parentDivId, nodesDiv, retryCount - 1); //keep trying
                        }
                    }
                });
            }
        }
    </script>
    
    推荐文章