プログラミングを学ぶための個人的なプロジェクトとして、サブネット計算機を構築しようとしています。私が問題を抱えている部分は、クラスフルなサブネット範囲を提示したいということです。たとえば、172.16.1.1/30 は 16384 のサブネットを提示
し
ます
... .0.11
...など
そのため、Web サイトに書き出すと、ブラウザが数秒間ロックされ、思ったよりも時間がかかります。できる限り調査したところ、「setTimeout」と入力すると、ロックアップに役立ち、ClassB サブネットを処理できることがわかりました (/32 で最大 65536)。ただし、数十万、数百万になると、まだ問題があります。数字をいじって、何が機能するかを確認するためのテスト スクリプトを作成しました。これに非常に慣れていないので、私はアイデアがありません。これが私のテストコードです...
HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Page</title>
</head>
<body>
<div id="subnetRange" style="border : solid 2px #ff0000; background : #000000; color : #ffffff; padding : 4px; width : 250px; height : 350px; overflow : auto; "></div>
<script type="text/javascript" src="pump.js"></script>
</body>
</html>
ジャバスクリプト:
var i = 0;
var myArray = new Array();
document.getElementById('subnetRange').innerHTML = "Loading..."; //carry on pumping?
function doCalculation()
{
//Surrounding loop to break the time out up by 1000 increments
for ( var x = 0; x < 2000; x++) {
myArray[i] = i;
i = i + 1;
var percent_complete=i;
}
return percent_complete;
}
function pump()
{
var percent_complete=doCalculation();
if (percent_complete<100000)
{
//pump();
setTimeout(pump, 1);
}
if (percent_complete >= 100000) {
document.getElementById('subnetRange').innerHTML = myArray.join("<br />"); //carry on pumping?
}
}
//setTimeout(pump, 1);
pump();
役立つ情報を提供できれば幸いです。そうでない場合は、お尋ねください。できる限りの情報を提供します。
ありがとうございました