`
huangxx
  • 浏览: 322703 次
  • 来自: ...
社区版块
存档分类
最新评论

PUSHLET 实战:JavaScript下利用setTimeout调度

阅读更多
<body>
<div id="content" />
</body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function main()
{
    for (var i = 0; i < 10; i++)
    {
        setTimeout("print('" + i + "')", 0);
        print("main");
    }
}

function print(identity)
{
    var ele = document.getElementById("content");
    ele.innerHTML += " print " + identity + "<br>";
}

main();
//-->
</SCRIPT>

 这阶段看PUSHLET的源码,对JS不是很熟,知道JavaScript默认只是单线程执行的,它总是执行完一个函数后才去执行另一个函数。但是看到一段代码:

// Join the pushlet server
function p_join() {
	// Ignore (for now) if already joined
	if (sessionId != null) {
		return;
	}

	_setStatus('connecting...');
	p_debug(flag, "p_join", 'joining..');


  // Check if pushlet frame is loaded
	if (pushletNet) {
		// Pushlet iframe is ready for calls
		pushletNet.setControlURI(pushletURI + '?p_event=join');
	} else {

		// Pushlet net iframe not loaded: continue waiting
		setTimeout("p_join()", 100);
	}
}

 

发现如果pushletNet没有初始化的话,那么如果继续执行setTimeout("p_join()", 100);而不执行其他函数岂不是永远循环下去,肯定是引擎做了调度,做了个最上面的测试代码,发现果然如我所猜。

分享到:
评论

相关推荐

    服务器推送pushlet讲解

    2. 创建Pushlet客户端:在客户端页面中,创建一个JavaScript或Java客户端来建立与Pushlet服务器的连接,并订阅感兴趣的数据源。 3. 实现Pushlet服务端:在服务器端,你需要编写Java代码来处理事件,并在事件触发时...

    Pushlet学习(二) -- Pushlet CookBook部分翻译 + 注释

    Pushlet是Java中的一种推技术,它允许服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。在Web应用中,这种技术打破了传统的HTTP长轮询或短轮询机制,提供了实时性更好的通信方式。本篇内容主要围绕"Pushlet...

    Pushlet简单应用小结

    - 创建Pushlet Client:在客户端,需要引入Pushlet的JavaScript库,并初始化一个连接对象,设置监听的频道。 - 建立连接:客户端向服务器发起HTTP请求,请求保持连接状态。 - 服务器处理:服务器接收请求后,将...

    pushlet javascript push

    1. Pushlet:Pushlet是由Jan Lehnardt创建的一个开源Comet服务器框架,它支持HTTP长连接,使得服务器可以主动将数据推送到客户端,而无需等待客户端发起请求。Pushlet利用HTTP的Keep-Alive特性,保持一个连接长时间...

    pushlet简单配置应用

    Pushlet是一种基于Java的实时数据推送技术,由荷兰JustObjects公司开发。Pushlet库的核心功能是实现实时的服务器向客户端推送数据,而无需客户端频繁发起请求,这大大提高了网络应用的效率和用户体验。以下是对...

    pushlet 之 Pushlet使用手把手实例

    2. 创建客户端:客户端通常是一个Web应用,使用JavaScript或者Java Applet来实现与Pushlet服务器的交互。你需要编写代码创建一个持久的HTTP连接,并注册订阅感兴趣的事件。 3. 编写服务器端逻辑:在服务器端,你...

    pushlet使用说明(包括中文乱码)

    4. **配置属性文件**:将 pushlet.properties 和 sources.properties 文件复制到 WEB-INF/classes 目录下,这两个文件是 Pushlet 运行所必需的配置文件,用于设置 Pushlet 的行为和事件源。 5. **调整 web.xml**:...

    pushlet文档和项目

    在实际应用中,Pushlet通常与JavaScript库配合使用,以便在客户端处理接收到的事件。例如,当服务器推送一个新的消息时,JavaScript可以更新网页内容,无需用户刷新页面。 要使用Pushlet,开发者首先需要在服务器上...

    pushlet

    Pushlet的核心组件是Pushlet Server和Pushlet Client。Pushlet Server作为服务端,接收并处理客户端的连接,当有新的数据可用时,会主动将数据推送到已经建立连接的客户端。Pushlet Client则是在用户端运行的程序,...

    comet 框架 之 pushlet

    2. **Pushlet Client**:客户端库提供了一套API,允许开发者在JavaScript、Java或其他语言中创建与Pushlet Server的连接,并订阅感兴趣的事件或数据流。 3. **Event Source**:这是服务器端的数据源,可以是数据库...

    pushlet例子

    Pushlet客户端通常是一个JavaScript脚本,它在用户浏览器中运行,用于建立与服务器的连接并接收推送的数据。 1. **Pushlet服务器端实现** - Pushlet服务器端使用Servlet监听客户端的连接。当客户端连接到服务器时...

    pushlet实现简单的用户聊天

    "pushlet实现简单的用户聊天"是一个典型的用例,它展示了如何利用Pushlet框架来构建一个在线聊天系统。Pushlet框架主要包括两个核心组件:Pushlet Server和Pushlet Client。Pushlet Server运行在服务器端,接收并...

    pushlet服务器推技术例子

    Pushlet是基于Java的开源项目,它利用了HTTP的长连接特性,实现了服务器主动向客户端推送数据的功能,避免了传统HTTP请求-响应模型中的频繁轮询,提高了效率和用户体验。 在描述中提到的“模拟用户聊天功能”,...

    Pushlet简单示例测试

    2. **Pushlet客户端**:客户端通常是一个Web应用,使用JavaScript或者其他客户端技术与Pushlet服务器建立持久连接。当接收到服务器推送的数据时,客户端会更新显示或者执行相应的操作。 3. **事件生成器**:在...

    PUSHLET即时通讯工程实例

    Tomcat的webapps目录是放置Web应用的默认位置,将本实例的压缩包解压后,直接将整个项目文件夹放入webapps下,例如命名为`pushlet_example`。 **项目结构** 解压后的项目包含以下主要文件和目录: 1. **index.jsp*...

    pushlet定时向前台推送消息

    此外,前端可能使用JavaScript库(如Socket.io或Stomp.js)来与Pushlet服务通信,处理接收到的推送消息,并在用户界面上展示。 总之,“pushlet定时向前台推送消息”是一个利用Pushlet技术实现的服务器主动推送系统...

    pushlet jar包下载

    服务器推 pushlet 服务器推 pushlet 服务器推 pushlet 服务器推 pushlet

    Pushlet点对点发送消息

    Pushlet就是利用这一特性实现服务器推的。 3. **点对点通信的实现**:在Pushlet的点对点应用中,每个客户端都可以作为消息的发送者和接收者。这可能涉及到复杂的网络拓扑和消息路由,可能需要用到P2P网络的节点发现...

    pushlet简单demo,导入即可运行

    4. **Pushlet**:Pushlet是早期的一种Java推送框架,它利用了HTTP的长连接特性,实现了服务器向客户端的主动推送。Pushlet通过维持一个开放的HTTP连接,当服务器有新数据时,可以直接推送到客户端,而不需要客户端...

Global site tag (gtag.js) - Google Analytics