AJax技术

itjoy的专栏(3)

字号+ 作者:H5之家 来源:H5之家 2015-11-23 16:11 我要评论( )

这是一个单例类,它的功能是为客户端保存文件上传状态,这里我没有使用Session来存储 文件上传状态, 因为对于AJAX这种异步调用,服务器会开启不同的Session,所以无法通过Session保存文件上传状态。 我并不认为这

   这是一个单例类,它的功能是为客户端保存文件上传状态,这里我没有使用Session来存储 文件上传状态,
因为对于AJAX这种异步调用,服务器会开启不同的Session,所以无法通过Session保存文件上传状态。
我并不认为这种方法最好,如果有更好的方法,欢迎大家一起讨论。 源代码如下:


/**
* 本例程演示了通过Web上传文件过程中的进度显示。您可以对本例程进行任何修改和使用。
*
* 如需要转载,请注明作者。
*
* 作者: 刘作晨
*
*/
package liuzuochen.sample.upload;

import java.util.Vector;

public class BeanControler {
private static BeanControler beanControler = new BeanControler();
private Vector vector = new Vector();
private BeanControler() {
}

public static BeanControler getInstance() {
return beanControler;
}

/**
* 取得相应FileUploadStatus类对象的存储位置
*/
private int indexOf(String strID) {
int nReturn = -1;
for (int i = 0; i < vector.size(); i++) {
FileUploadStatus status = (FileUploadStatus) vector.elementAt(i);
if (status.getUploadAddr().equals(strID)) {
nReturn = i;
break;
}
}
return nReturn;
}
/**
* 取得相应FileUploadStatus类对象
*/
public FileUploadStatus getUploadStatus(String strID) {
return (FileUploadStatus) vector.elementAt(indexOf(strID));
}
/**
* 存储FileUploadStatus类对象
*/
public void setUploadStatus(FileUploadStatus status) {
int nIndex = indexOf(status.getUploadAddr());
if ( -1 == nIndex) {
vector.add(status);
} else {
vector.insertElementAt(status, nIndex);
vector.removeElementAt(nIndex + 1);
}
}
/**
* 删除FileUploadStatus类对象
*/
public void removeUploadStatus(String strID){
int nIndex = indexOf(strID);
if(-1!=nIndex)
vector.removeElementAt(nIndex);
}
}

 2.2. 客户端代码

   客户端我们采用Prototype框架。

  2.2.1. AjaxWrapper.js

返回

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • lanchengxiaoxiao的专栏

    lanchengxiaoxiao的专栏

    2015-11-05 09:02

  • weihj1999的专栏

    weihj1999的专栏

    2015-11-05 09:01

  • 2009的专栏

    2009的专栏

    2015-10-23 19:08

  • gglinux的专栏

    gglinux的专栏

    2015-09-12 14:02

网友点评
<