【发布时间】:2013-12-09 14:33:04
【问题描述】:
我尝试在不使用服务器端编码的情况下使用 javascript 即时更新素数。 这是我的代码。
<!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>AJAX with PHP: Quickstart</title>
<script type="text/javascript">
var n = 1;
search: while (true) {
n += 1;
for (var i = 2; i <= Math.sqrt(n); i += 1)
if (n % i == 0)
continue search;
// found a prime!
document.getElementById('result').innerHTML=n;
}
</script>
</head>
<body>
<p> I want to update prime number here</p>
<div id="result" >
</div>
</body>
</html>
但是,这里没有更新 div "result"。我们不能只用javascript来做到这一点吗? 像下面的例子一样http://www.whatwg.org/demos/workers/primes/page.html
更新代码
<!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>AJAX with PHP: Quickstart</title>
<script type="text/javascript">
var n = 1;
function testNextPrime() {
var isPrime = true;
n = n + 1;
// console.log('testing', n);
for (var i = 2; i <= Math.sqrt(n); i += 1) {
if (n % i == 0) isPrime = false;
}
if (isPrime) {
document.getElementById('result').innerHTML=n;
}
// Schedule the next test (this gives browser a chance to update display and process any other events)
setTimeout(testNextPrime, 2000);
}
// Start testing for primes
testNextPrime();
</script>
</head>
<body>
<p> I want to update prime number here</p>
<div id="result" >
</div>
</body>
</html>
【问题讨论】:
-
哇,在 JS 中使用标签???在编写 JS 的 15 年中,我还没有看到任何使用标签的真实代码。我什至不确定它们应该如何与
while这样的循环一起工作。 -
这样做的真正目的是什么?它似乎是一个无限循环!例如,将“while(true)”更改为“while(n
标签: javascript primes