通过调用java Applet内置函数的方法实现javascript暂停(sleep)功能

现代浏览器都是单线程的(谷歌Crhome自称是多线程的,偶也没有实验过),所以JS脚本中没有sleep这个函数.事实上如果有的话,暂停时就会出现浏览器假死的现象,例如按钮,Flash没有反应,所有对象都会静止.这里使用JS调用java applet内置的sleep方法实现暂停功能,而且不会出现假死的现象(真不知道是怎么实现的)

微软太不是东西了,XP以后,IE中默认没有打开java applet控件,即是打开也是1.1的老版本.在此在此咒骂一下微软的垄断为WEB开发带来的灾难.Firefox中不存在这个问题.我现在已经几乎不再用IE了

首先我们建立一个文本文件后缀名改为JsSleep.java,内容写为:

public class JsSleep extends java.applet.Applet{
public void sleep(int ms){
try{
Thread.sleep(ms);
}catch(Exception e){
}
}
}

可以看出,类只有一个函数sleep.JS只要调用这个函数就可以了.

编译一下.生成JsSleep.class

建立一个HTML文件,引入这个.class

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>sleep测试</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<script>
function sleep(ms){
document.getElementById(‘sleepapp’).sleep(ms);
}

function test(){
setInterval(“document.getElementById(‘testdiv’).innerHTML++”, 20);
sleep(2000);
alert(‘hehe’);
}
</script>
</head>
<body>
<applet id=”sleepapp” code=”JsSleep.class” width=”400″ height=”300″></applet>
<input type=”button” onclick=”test()” value=”测试”/>
<div id=”testdiv”>0</div>
</body>
</html>

测试一下,OK了

所有源代码下载地址: javasleep.rar

One Reply to “通过调用java Applet内置函数的方法实现javascript暂停(sleep)功能”

发表评论

电子邮件地址不会被公开。

*