<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import flash.utils.Dictionary;
import mx.events.TreeEvent;
import mx.rpc.AsyncToken;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
private var dictionary:Dictionary = new Dictionary();
private function itemOpenHandler(event:TreeEvent):void
{
var item:Object = event.item;
if (item && item.@loadFlag == "false")
{
service.url = item.@url;
var token:AsyncToken = service.send();
dictionary[token] = item;
}
}
private function resultHandler(event:ResultEvent):void
{
var channel:XML = XML(dictionary[event.token]);
var result:XML = XML(event.result);
var items:XMLList = result..item;
var item:XML = null;
var node:XML = null;
channel.@loadFlag = "true";
delete channel.*;
for each (item in items)
{
node = <node/>;
node.@label = item.title;
channel.appendChild(node);
}
}
private function faultHandler(event:FaultEvent):void
{
var channel:XML = XML(dictionary[event.token]);
channel.@loadFlag = "true";
delete channel.*;
}
private function getLabel(item:Object):String
{
var node:XML = XML(item);
if (node.name().toString() == "item")
return node.title;
else
return node.@label;
}
]]>
</mx:Script>
<mx:XML id="blog">
<root label="新浪博客">
<channel label="文化" url="http://rss.sina.com.cn/blog/index/cul.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="八卦" url="http://rss.sina.com.cn/blog/index/ent.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="情感" url="http://rss.sina.com.cn/blog/index/feel.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="观点" url="http://rss.sina.com.cn/blog/index/other.xml" loadFlag="false">
<node label="加载中..." />
</channel>
<channel label="财经" url="http://rss.sina.com.cn/blog/index/stocks.xml" loadFlag="false">
<node label="加载中..." />
</channel>
</root>
</mx:XML>
<mx:HTTPService id="service" concurrency="multiple" resultFormat="xml"
result="resultHandler(event)" fault="faultHandler(event)" />
<mx:Tree id="tree" width="400" height="500"
dataProvider="{blog}" labelField="@label"
itemOpen="itemOpenHandler(event)" />
</mx:Application>
分享到:
相关推荐
最近项目中有一个比较大型的树节点加载,网上面也看过一些解决方案,感觉都不是很好,也有很多误区,比如单击节点时加载子...ztree fileter方法是在每次展开时都会执行,所以根据不同的请求达到异步加载子节点的需求。
大批量数据加载使用TreeView控件构建树节点时,防止界面发生卡死;异步加载树节点防止跨线程报错。
ASP.NET treeView 异步加载事例代码 适用于自引用表
在家研究了一下extjs异步树,-每个节点都异步加载-前后台代码都有-附整个工程-运行通过-前台代码请看doctree.js,后台代码请看TreeService.java,运行环境:Myeclipse6.5+tomcat7.0.27
完整的jquery easyui tree 树形列表节点异步加载demo,比官方demo详细得多。是前后台交互的web应用。
WPF的ItemsControl的ItemsSource的异步加载,引用程序集,使用依赖项属性,可以异步加载。
该资源原理说明与博客《异步&同步加载树节点----zTree(一)》相一致。
今天小编就为大家分享一篇layui-tree实现Ajax异步请求后动态添加节点的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
当项目js(css)文件使用越来越多,js 文件的加载也成了性能上的一个问题,此资源能够在页面全部加载完成后异步加载js等资源文件,它可以顺序加载资源列表,也可以并发加载资源列表,它包含一个方法调用接口:...
WPF制作的DataGrid异步加载程序,使用MVVM设计模式
Android AsyncTask用法和异步加载图片通过AsyncTask 从网络上异步加载一张图片
Ext.ux.tree.treegrid异步加载,点击节点加载数据
图片异步加载,照片墙,异步加载listview中的图片 代码3 说明:http://blog.csdn.net/wjyyxzzjnws/article/details/10041125
关于javaWeb(S2SH)中使用zTree异步加载树节点问题
Echarts基础折线图源代码,对于数据源的读取有两种方式:直接定义数据源和异步加载数据,异步加载数据以读取json/js数据为主。
Android 演示异步加载图片的实现 附源代码,这里主要是演示ListView的异步加载图片功能,异步加载一个view时,如果view里面有EditText,EditText在每次加载view都会触发焦点,这时候异步就会出错。可能我这样说不太...
本人手写的一款js树形控件,附带图片,代码简洁,注释齐全,可读性高,易于维护,方便移植,结构清晰,思路明了,界面美观,同时支持异步加载,对浏览器的兼容行强,你还可以根据自己的需要扩展功能,可大量应用于...
异步加载 仿expandListView效果 分页异步加载 仿expandListView效果 分页异步加载 仿expandListView效果 分页异步加载 仿expandListView效果 分页
winform的一个简单易用异步加载等待效果,调用方式: this.AsyncWaitDo(delegate{ //异步等待操作}, delegate{//回调操作}); this是要进行异步等待的窗体
异步加载,主线程,子线程的关系