function getColumnValue(target){
var columnName=target.getAttribute("columnName");
var tableName=dojo.byId("tableName").innerHTML;
curTargetID=target.id;
/** dojo version 1.0.2 Ajax */
pars="tableName="+tableName+"&columnName="+columnName;
dojo.xhrGet({
url:"dCSystemColumnValueServlet?"+pars,
handleAs:'json',
// timeout:4000,
load:function (json,ioArgs){
showColumnValue(json);      
}, 
error: function(json)
{
//alert("Error");
var targetDiv=dojo.byId(curTargetID);
targetDiv.style.width="200px";
}
});
}function showColumnValue(json){
var obj=dojo.fromJson(json);

var div=document.createElement('div');
var table=document.createElement('table');
var tbody=document.createElement("tbody");
div.className='InnerBox';
    //alert("recordNumber:"+recordNumber);

for(var i=0;i<obj.values.length;i++)
{
var columnValue=obj.values[0].value;
  var td=document.createElement('td');
td.className="DragBoxTd";
if(columnValue){
if(columnValue.length>20){
td.innerHTML=columnValue.substring(0,20)+'...';
}else{
td.innerHTML=columnValue;
}
if (i%2==0)
{
td.style.backgroundColor="#9faed7";
}else{
td.style.backgroundColor="#d8ddf1";
}
}
var tr=document.createElement('tr');
tr.appendChild(td);
tbody.appendChild(tr);
table.appendChild(tbody);
}
问下,这上面的代码是dojo的ajax去数据库取数据,然后通过json返回对象到页面。
在ie下, var obj=dojo.fromJson(json); 中的obj取到数据的时间不到半秒钟。
但是在firefox2.0下,obj取到数据花了5到7秒钟,这个是为什么?我上网查不到原因。自己尝试过的方法:
1,开始我还以为是电脑的原因,我换到别的电脑中跑url或者把我的工程部署到别的电脑上,发现也是一样的!
2,我将json换成xml或者text来取数据。发现ie中正常,firefox也是很慢。问题:怎么解决firefox下dojo通过json取数据慢的问题呢?