var data_part = {};
var data_full = {};
var jsonstore = null;
var grid1 = null;
var dataItems = {
identifier: 'id',
label: 'servername',
items: []
};
function debug(value)
{
console.log(value);
}
function SendMessage(Url, Data, Fail, Suc)
{
dojo.xhrPost({
url:Url,
preventCache: true,
handleAs: "json",
postData: Data,
load: function(json) {
if (Suc != null) {
Suc(json);
}
},
error: function(text) {
debug(text);
}
});
}
function add_tolist(Var)
{
for (var num = 0; num < Var.root.length; num++) {
switch(Var.root[num].cmd) {
case "stop": {
}
break;
case "list":
break;
case "state": {
grid.setStore(null);
for (var i = 0, l = Var.root[num].value.length; i < l; i++) {
var item = Var.root[num].value[i];
var Add = item;
Add.type = "continent";
Add.id = item.servername;
Add.ip="";
Add.port="";
Add.rate = Add.curuser/Add.maxuser;
for (var j = 0, k = item.children.length; j < k; j++) {
var item2 = item.children[j];
item2.id = Add.servername+"_"+item2.ip+"_"+item2.port;
item2.type="server";
item2.rate = item2.curuser/item2.maxuser;
}
data_full[Add.id] = dojo.mixin({}, Add);
delete Add['children'];
Add['$ref'] = Add.id;
data_part[Add.id] = dojo.mixin({}, Add);
}
var data = [];
for (var i in data_full) {
data.push(data_full[i]);
}
dataItems.items = data;
jsonStore.data = dataItems;
jsonStore._forceLoad();
grid.setStore(jsonStore);
grid.aggregator.clearSubtotalCache();
grid.update();
grid.render();
}
break;
}
}
SendMessage("/server", "cmd=wait", null, add_tolist);
}
dojo.addOnLoad(function(){
jsonStore = new dojo.data.ItemFileReadStore({data: dataItems});
grid.setStore(jsonStore);
dojo.connect(window, "onresize", grid, "resize");
SendMessage("/server", "cmd=function", null, add_tolist);
});
PS: 之前的代码还有一个bug,就是头一次拿到代码之后,编译通过之后,运行的话也正常,但是就是没办法接受连接,这次修正了,一个不小心。实在抱歉。