`
wzu_xiaomai
  • 浏览: 4327 次
  • 性别: 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聊天室的设计与分析

    本文介绍了一个基于Ajax的聊天室系统的具体实现方法,通过结合ASP.NET 2.0和Ajax技术,不仅提升了用户体验,而且简化了开发流程。未来,随着Web技术的不断发展,Ajax技术的应用范围将更加广泛,为Web应用带来更多的...

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

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

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

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

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

    本文将详细介绍一种基于Ajax实现的无限级菜单系统,该系统不仅能够支持传统的网页架构和MVC框架,还具备多线程并发请求的能力,并且采用了更为轻量级的脚本加载策略,以优化前端性能。此外,该系统的布局完全基于`...

    基于ajax技术的聊天室实现

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

    基于 Ajax的 ETL 工具分析与 web 实现

    ### 基于Ajax的ETL工具分析与Web实现 #### 数据仓库技术 在构建数据仓库的过程中,数据准备工作是至关重要的一步。这涉及到从不同来源(可能是相同的也可能是不同的)收集、清理、转换和加载数据的过程。数据仓库...

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

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

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

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

    一种基于Ajax的动态树型结构的设计与实现.pdf

    ### 一种基于Ajax的动态树型结构的设计与实现 #### 摘要 本文提出了一种新型的动态树型结构的实现方案,该方案利用了Yahoo用户界面库和Ajax(异步JavaScript和XML)技术。这种方法能够构建出结构清晰、具有良好...

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

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

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

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

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

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

    基于Ajax的即时消息系统的设计与实现

    ### 基于Ajax的即时消息系统的设计与实现 #### 一、引言 随着互联网技术的发展,企业和组织越来越依赖于高效的信息交流平台来进行管理和协作。传统的B/S(Browser/Server)架构应用程序在处理即时消息时面临的一个...

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

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

Global site tag (gtag.js) - Google Analytics