0
我已經掃描了網頁以查找在我的xmlhttp請求中使用的最大子字符串實現,但是我發現只有1個工作,在其他情況下,responsetext沒有被視爲字符串不管是什麼我已經寫:需要幫助來改進這個最大的公共子字符串實現
txt = txt + ""; // or
txt = new string(txt);)
此功能,但它是可怕的慢。我只是想知道如果你在那裏編寫大師可以幫助我改進這個算法。
那我打電話一個XMLHttpRequest該網站看起來像這樣
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /</title>
</head>
<body>
<h1>Index of /</h1>
<ul><li><a href="/"> Parent Directory</a></li>
<li><a href="random"> random/</a></li>
<li><a href="random_2/"> random_1/</a></li>
<li><a href="radnfdom"> random/</a></li>
<li><a href="rasrdndddom_1/"> random_1/</a></li>
<li><a href="random_43"> random/</a></li>
<li><a href="test/"> random_1/</a></li>
</ul>
</body></html>
在您可以更好的速度去除所有的HTML標籤。換句話說,我將只搜索HTML中的純文本文本文件。
您可以在觀賞動作腳本here at tdsoft.se
<html>
<head>
<script type="text/javascript">
var txt;
var buildName = "";
var xmlhttp;
function lcs(a, b) {
var aSub = a.substr(0, a.length-1);
var bSub = b.substr(0, b.length-1);
if (a.length == 0 || b.length == 0) {
return "";
} else if (a.charAt(a.length-1) == b.charAt(b.length-1)) {
return lcs(aSub, bSub) + a.charAt(a.length-1);
} else {
var x = lcs(a, bSub);
var y = lcs(aSub, b);
return (x.length > y.length) ? x : y;
}
}
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("http://tdsoft.se/testni.html",handleXML);
}
var checkState = function(xmlhttp, callback) {
try{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback();
}
else {
// Check back again 1 sec later
setTimeout(checkState, 1000);
}
}
catch(err){
setTimeout(checkState, 1000);
}
};
function handleXML()
{
checkState(xmlhttp, function() {
txt=xmlhttp.responseText;
buildName = "random";
txt = txt.replace(/<[^>]*>/g, "");
var myvar = "";
myvar = lcs(txt, "random");
document.write(myvar);
});
}
</script>
</head>
<body onLoad="myFunction()">
</body>
</html>
函數在哪裏?你爲什麼不發佈實際的代碼? – Pointy
@Pointy函數的名字是函數lcs(a,b)=) – wayne
你想要達到什麼目的? – mplungjan