小弟最近鼓捣邮件,启动一个接收外部邮箱邮件的线程,接收完毕之后希望接收到的邮件用Ajax技术刷新然后显示到列表页面,由于对线程不熟,怎么弄都达不到想要的效果。在此请教各路高人,望各位大虾们能给小弟解惑。最好能给点源码或者事例之类的代码,o(∩_∩)o 
这个号是小弟刚刚申请的,所以结贴分不高,但愿没打击各位的热情,拜谢.

解决方案 »

  1.   

    你做Web,根本没有Thread这一说的.
    你只要发起一个Ajax请求就OK了,注意是异步的,这个效果和你开个线程很相似了.
    但是其和线程是没有关系的.xhr = new XmlHttpRequest();
    xhr.open(,, /*异步?*/)
    xhr.onreadystatechange = function() { ... ... /*这里谢你要处理收到的东西的逻辑即可*/};
    这两句之间不会阻塞,因为不是同步的,是异步的.这个和你起一个线程看来很相似的.但是,不一定浏览器会帮你开线程.!
    xhr.send();
      

  2.   

    楼上说的很好,你先把Ajax原理了解下,再配合一些现有的Ajax框架就OK了。
      

  3.   

    看看1楼说的下面给你个实例
    http://blog.csdn.net/javatwt/archive/2007/03/02/1519105.aspx
      

  4.   

    无论你的多线程是在客户端还是在服务器端,都是不正确的。
    客户端:浏览器上运行的是js,没有多线程一说。
    服务器端:开放一个服务,线程是由容器来维护的。你不用写多线程。
    你要做的是,在js里用ajax技术每隔一定的时间去向服务器请求一次差量邮件列表(也就是与上次请求相比,增加了哪些邮件)。然后添加到页面上来。你不用去刷新页面,可以直接在ajax的回调函数里改变页面的内容。
      

  5.   

    用这个Ajax.PeriodicalUpdater这个类反复实例化并使用一个 Ajax.Updater 对象来刷新页面上的元素,或执行任何 Ajax.Updater 能执行的其它任务。更多信息请参阅 Ajax.Updater 参考。属性 类型 类别 描述
    container Object instance 这个值将会直接传给 Ajax.Updater 的构造器。
    url String instance 这个值将会直接传给 Ajax.Updater 的构造器。
    frequency Number instance 两次刷新的间隔时间(不是频率),以秒为单位。默认为 2 秒。当调用 Ajax.Updater 时这个数字将乘上 decay。
    decay Number instance 重新执行任务时保持当前衰减等级。
    updater Ajax.Updater instance 最近使用的 Ajax.Updater 对象
    timer Object instance 该执行下次刷新时用来通知对象的 Javascript 计时器。
    方法 类别 参数 描述
    [ctor](container, url, options) constructor container:可以是元素的 ID、元素本身或者一个含有两个属性的对象:object.success - AJAX 调用成功时用到的元素(或 ID),
    object.failure - 其它情况下用到的元素(或 ID)。
    url: 请求的 URL。
    options: AJAX 选项。 建立一个该对象的实例,它将应用 options 参数调用给定的 url。
    start() instance (无) 此方法通常不从外部调用。它由对象本身调用来开始执行它的周期性任务。
    stop() instance (无)  使对象停止执行周期性任务。停止后,对象将调用 onComplete 选项指定的回调函数(如果有的话)。
    updateComplete() instance (无) 此方法通常不从外部调用 。它由当前使用的 Ajax.Updater 完成请求时调用。它用来计划下次刷新。
    onTimerEvent() instance (无) 此方法通常不从外部调用。该执行下次刷新时由对象内部调用。