prototype操作ajax的高难度问题(在线等)

wangdongzjk 2006-06-07 10:34:24
var JSUpload = Class.create();

JSUpload.prototype = {
initialize : function(form){
this.theUniqueID = 0;
this.processDone = $("PercentDone"); //process bar
this.totalSize = $("TotalSize");
this.sizeComplete = $("SizeCompleted");
this.transferRate = $("TransferRate");
this.elapsedTime = $("ElapsedTime");
this.timeLeft = $("TimeLeft");

this.iframe = $("ifame_upload");
this.bar = $("bar");

this._form = form;
this._action = "/humanreport/smartUpload";

this.oXmlDoc = Ajax.getTransport();
},

uploadData : function(){
this.theUniqueID = (new Date()).getTime() % 1000000000;

this.processDone.style.width = 0;
this.totalSize.innerHTML = "";
this.sizeComplete.innerHTML = "";
this.transferRate.innerHTML = "";
this.elapsedTime.innerHTML = "";
this.timeLeft.innerHTML = "";
this._form.action = this._action;
//this._form.target = $("ifame_upload");
this._form.submit();

this.processBar();
},

processBar : function(){
var url = "/humanreport/smartUploadXml";
var pars = "tmp=" + Math.random();
var processAjax = new Ajax.Request(
url,{method : 'post',parameters : pars,onComplete : this.loadComplete}
);
},

loadComplete : function(originalRequest){
try{
var root;
if(window.DOMParser){
var parser = new DOMParser();
root = parser.parseFromString(text, "text/xml");
}

if (window.ActiveXObject){
var doc = Try.these(
function() { return new ActiveXObject('MSXML2.DomDocument') },
function() { return new ActiveXObject('Microsoft.DomDocument')},
function() { return new ActiveXObject('MSXML.DomDocument') },
function() { return new ActiveXObject('MSXML3.DomDocument') },
function() { return new ActiveXObject('Microsoft.XMLDOM') }
) || null;
doc.async = false;
doc.loadXML(originalRequest.responseText);
if(doc.parseError.errorCode != 0)
root = null;
else{
root = doc;
}
}

if(root !== null){
var iTimerID;
if(root.selectSingleNode("errMessage") === null){
var readState = root.selectSingleNode("//ReadyState").text;
$('textarea').innerHTML = readState;
if(readState == "uninitialized"){
iTimerID = new PeriodicalExecuter(JSUpload.processBar,100);
}
else if(readState == "loading"){
$("bar").style.display = 'block';
$("PercentDone").style.width = root.selectSingleNode("//Percentage").text;
$("TotalSize").innerHTML = root.selectSingleNode("//TotalSize").text;
$("SizeCompleted").innerHTML = root.selectSingleNode("//SizeCompleted").text;
$("TransferRate").innerHTML = root.selectSingleNode("//TransferRate").text;
$("ElapsedTime").innerHTML = root.selectSingleNode("//ElapsedTime").text;
$("TimeLeft").innerHTML = root.selectSingleNode("//TimeLeft").text;
iTimerID = new PeriodicalExecuter(JSUpload.processBar,100);
}
else if(readState == "loaded"){
$("PercentDone").style.width = "100%";
iTimerID = null;
alert("upload complete, handling...");
}
else{
iTimerID = null;
alert("complete");
}
}
else{
alert(root.selectSingleNode("//ErrorMessage").text);
}
}
}
catch(e){
alert(e.description + "\n" + ":" + (e.number & 0xFFFF));
}
}
};

iTimerID = new PeriodicalExecuter(JSUpload.processBar,100);这段代码怎样才等调用JSUpload的processBar函数?
...全文
576 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
iasky 2006-10-15
  • 打赏
  • 举报
回复
mark
wangdongzjk 2006-10-15
  • 打赏
  • 举报
回复
upup
wangdongzjk 2006-08-09
  • 打赏
  • 举报
回复
up
wangdongzjk 2006-06-21
  • 打赏
  • 举报
回复
to xuzun
是不是应该问iTimerID = new PeriodicalExecuter(JSUpload.processBar,100)这段代码为什么不能工作?也就是说怎样才能在PeriodicalExecuter中控制JSUpload对象中的方法。
dream00 2006-06-21
  • 打赏
  • 举报
回复
没有用过,你试试创建JSUpload类的对象,然后由对象来调用JSUpload
mrshelly 2006-06-21
  • 打赏
  • 举报
回复
Prototype 自带有 Ajax 对象吧。
xuzuning 2006-06-21
  • 打赏
  • 举报
回复
js的问题怎么跑到php来问了?

iTimerID = new PeriodicalExecuter(JSUpload.processBar,100);这段代码怎样才等调用JSUpload的processBar函数?
这个问题问的很奇怪!
JSUpload.processBar是PeriodicalExecuter的回调函数,由PeriodicalExecuter在需要的时候调用
it_zl 2006-06-21
  • 打赏
  • 举报
回复
prototype偶不会...AJAX会...

太深奥了...
我的PHP+AJAX的站 http://www.5uie.com
wangdongzjk 2006-06-07
  • 打赏
  • 举报
回复
up
wangdongzjk 2006-06-07
  • 打赏
  • 举报
回复
不要沉下去。
wangdongzjk 2006-06-07
  • 打赏
  • 举报
回复
没有人会吗?

21,889

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧