Web サイトのコンテンツを非同期で取得したいと考えています。サーバーに複数のリクエストがあるので、「接続スタッフ」を別の機能に分離するのは素晴らしいことだと思いました。
function conToServerAsync( url, postParams, func )
{
var xmlHttp;
if( window.XMLHttpRequest )
{
xmlHttp = new XMLHttpRequest();
}
else
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange = func;
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(postParams);
}
今、私はこのような「conToServerAsync」関数を実行しているこの他の関数を持っています:
function findSearchResult(value)
{
conToServerAsync( "Classes/Async/liveSearch.php", "sVal="+value, function()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
document.getElementById("searchResult").innerHTML = xmlHttp.responseText;
document.getElementById("searchResult").style.border="1px solid #A5ACB2";
}
});
}
私のケースで実際に興味深いのは、すべてをチェックし、渡されたすべてのパラメーターが有効であることです。次に、最後のパラメーター "conToServerAsync( "Classes...", "sVal..", function(){...}" で指定された関数を onreadystatechange に直接割り当てようとしました。
...
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
document.getElementById("searchResult").innerHTML = xmlHttp.responseText;
document.getElementById("searchResult").style.border="1px solid #A5ACB2";
}
}
...そしてそれは完全に機能します:Sしたがって、間違いなくエラーは関数を間違った方法で渡すことに関するものであり、私にはわかりません。私の場合は、それについて独自の質問をした特定のものです。
答えてくれてありがとう :)