`
wzu_xiaomai
  • 浏览: 4231 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基于ajax实现在线网络工具之跳过线程

 
阅读更多

我在这篇文章中对这个小项目有过简单的介绍http://wzu-xiaomai.iteye.com/blog/1779814,你目前在看的这篇文章我主要想讲讲“线程的结束”。

在命令的执行时理想状态是执行后结果完全显示完再进行下一次命令的执行,但是对用户来说这样的体验不好,现实是用户想执行新命令了就停止旧命令结果的显示而显示新命令产生的结果。如果不对执行旧命令的线程进行处理,则保存命令结果的Queue队列内容会造成混乱(多次命令执行结果都放进去了)。

我在iteye问了一个问题http://www.iteye.com/problems/92188如何有效杀死一个线程?现在回过头来看这个问题,觉得自己问错了,不应该是杀死线程,而是跳过线程更合理。我在项目中跳过线程的策略跟那个问题的最佳答案原理差不多,都是设置一下标志位的值。只不过我的标志位不止一个,比如重复点执行就需要跳过旧线程,还有是用户关闭网页了,对一些持续有结果的线程就要在规定时间内结束,即停止结果放入Queue。

我在线程中的代码如下:

while ((line = input.readLine()) != null) {
                Date dateNow = new Date();
                time = dateNow.getTime() - date.getTime();
                minute = (time / (1000 * 60));
                id = (String) session.getAttribute("id");
                if (threadId == id && minute < MINUTE) {
                    results.offer(line);
                    session.setAttribute("result", results);
                }
                else {
                    break;
                }
            }
            results.offer("*end*");

每次点执行都会产生一个线程,我会给这个线程一个threadId,如果这个threadId是当前session域中的id则将结果放入队列中,否则说明用户又点了一次执行产生了一个新线程,那么旧线程的结果就不能放入队列中了,新线程的结果才可以。minute是用户关闭浏览器后到当前的时间,以分钟计。当minute > MINUTE时说明用户关闭浏览器大于5分钟了,还在运行的线程代码可以跳出来了。

 

分享到:
评论

相关推荐

    基于ajax的即时通讯系统例子

    即时通讯(Instant Messaging,IM)系统是互联网上广泛使用的应用之一,它允许用户实时地进行文字、语音甚至视频交流。在本案例中,我们将探讨如何使用AJAX(Asynchronous JavaScript and XML)技术来构建一个基于...

    基于AJAX技术的博客系统设计与实现

    **基于AJAX技术的博客系统设计与实现** 在当今互联网技术快速发展的时代,AJAX(Asynchronous JavaScript and XML)已经成为构建高效、互动性极强的Web应用的重要技术。本项目"基于AJAX技术的博客系统设计与实现",...

    jQuery+ajax实现三级级联

    5. **错误处理**:在ajax请求中设置错误处理回调函数,以处理可能出现的网络问题或服务器错误,如显示错误提示或者恢复之前的选择。 6. **兼容性**:由于这个实例已经过专业测试人员的验证,并且声明兼容所有主流...

    基于AJAX的无刷新聊天室

    【基于AJAX的无刷新聊天室】是一种利用Ajax技术实现的实时交互聊天系统,它无需用户手动刷新页面就能即时更新聊天内容,提升了用户体验。在Web 2.0时代,AJAX(Asynchronous JavaScript and XML)成为了构建动态、...

    基于AJAX电子商务系统源码

    这个系统旨在提供高效、动态且交互性强的在线购物体验,它利用了AJAX(Asynchronous JavaScript and XML)的优势,使得用户无需刷新整个页面即可实现数据的异步更新,从而提升了用户体验。 首先,我们要理解AJAX的...

    基于AJAX PHP MYSQL的无刷新分页工具的研究与实现.pdf

    《基于AJAX PHP MYSQL的无刷新分页工具的研究与实现》 在Web程序开发中,分页是一项重要的功能,特别是在处理大量数据时,分页能够有效地提高用户体验和系统性能。传统的分页方式通常伴随着整个页面的刷新,然而在...

    基于Ajax的无刷新聊天室.zip

    在本项目"基于Ajax的无刷新聊天室"中,我们将看到Ajax如何被用来构建一个实时、流畅的在线交流平台。 **关键知识点** 1. **Ajax原理**:Ajax的核心是JavaScript对象XMLHttpRequest,它允许浏览器向服务器发送异步...

    实现基于 Ajax 的无限级菜单源代码

    实现基于 Ajax 的无限级菜单源代码 支持Form的无闪提交(方法有点笨) 支持MVC框架,即支持传统网页架构 多线程并发请求(要语言支持线程) 动态加载文件,只加载有用的!处理了Ajax框架臃肿的JS文件问题...

    基于ajax技术的聊天室实现

    **基于Ajax技术的聊天室实现** 在Web开发中,实时交互和无刷新更新用户体验是现代网页设计的关键要素。Ajax(Asynchronous JavaScript and XML)技术的出现,极大地改善了这一情况。Ajax并非一种单一的技术,而是一...

    基于jquery的ajax聊天室

    基于jQuery的Ajax聊天室应用是网络聊天室的一种优秀的实现方法,具有高效、流畅、富有前景等特点。本系统的设计思路、系统架构、关键技术和实现方法等方面的介绍,对于开发者和研究人员具有重要的参考价值。

    基于Ajax实现网站用户意见反馈.pdf

    "基于Ajax实现网站用户意见反馈.pdf" 本文主要介绍了基于Ajax技术实现网站用户意见反馈的方法。Ajax是一种新的Web应用方法,通过结合XHTML、CSS、DOM、XML等技术,并利用JavaScript将这些技术整合起来,实现浏览器...

    用Ajax实现在线考试系统的论文

    **在线考试系统与AJAX技术** 在线考试系统是一种利用互联网技术进行远程测试的平台,它为教师和学生提供了便捷的测验和评估工具。在这样的系统中,AJAX(Asynchronous JavaScript and XML)技术扮演了关键角色,它...

    基于AJAX在线即时通讯工具系统源码

    在线即时通讯工具实际上是一种基于WEB方式的聊天工具,又称WEB QQ。用户可以以网页的形式实现聊天功能。本系统采用ASP.NET2.0和ASP.NET AJAX技术,以及SQL SERVER 2005数据库共同实现在线即时通讯工具的方法。

    \基于Ajax聊天室的设计与分析

    基于Ajax聊天室的设计与分析 论文 对于写论文的同学有一定的帮助

    基于Ajax技术的博客系统设计与实现

    基于Ajax技术的博客系统设计与实现 毕业设计。。。。你懂的。。。

    基于Ajax技术的异步搜索引擎研究与实现

    基于Ajax技术的异步搜索引擎研究与实现

    基于AJAX的聊天室

    在互联网应用中,实时交互性是提高用户体验的关键因素之一,而基于AJAX(Asynchronous JavaScript and XML)的聊天室就是这样一种实现方式。AJAX允许网页在不刷新整个页面的情况下与服务器交换数据并更新部分网页...

    基于AJAX的IETM动态目录树的设计与实现.PDF

    基于AJAX的IETM动态目录树的设计与实现

    基于AJAX的简易聊天室

    【基于AJAX的简易聊天室】是一个利用现代Web技术实现的实时交互平台,它整合了AJAX、JSP、Servlet和MySQL数据库等关键技术,旨在提供一个简洁高效的在线沟通环境。AJAX(Asynchronous JavaScript and XML)是核心,...

    基于Ajax的邮件系统

    综上所述,基于Ajax的邮件系统利用Ajax技术实现了高效、无刷新的用户体验。通过分析提供的文件,我们可以看到从数据库操作到前端界面的各个层面都融入了Ajax的设计,展示了Ajax在Web开发中的强大应用潜力。

Global site tag (gtag.js) - Google Analytics