AjaxのJavaScriptが動きません
Ajaxを使ったJavascriptで、以下の①と②は個別には問題なく動くのですが、
これを同時に使用とすると、②のwindow.onbeforeunload()関数が呼び出されません。
window.onbeforeunloadを使う場合の注意点などがありますか?
画面遷移時なので、console.log等も残せないようなので、デバッグにも苦労しています。
少し長くてすいませんが
コード①
<script language="JavaScript">
// ボタン無効の解除
// タイマーによる連続クリック防止を解除する
function buttonenable(){
var btn_L = document.getElementById('button_L');
var btn_R = document.getElementById('button_R');
btn_L.disabled = false;
btn_R.disabled = false;
}
//XMLHttpRequestオブジェクト生成
function createHttpRequest(){
if(window.XMLHttpRequest){ //Chrome,Firefoxなど
return new XMLHttpRequest()
}
else if(window.ActiveXObject){
try { //MSXML2以降用
return new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try { //旧MSXML用
return new ActiveXObject("Microsoft.XMLHTTP")
} catch (e2) {
return null
}
}
}
else {
return null
}
}
//POSTの準備、コールバック関数の指定、POST
function requestFile( data , method , fileName , async )
{
//XMLHttpRequestオブジェクト生成
var xhrobj = createHttpRequest();
//open メソッド
xhrobj.open( method , fileName , async );
//サーバに対して解析方法を指定する
xhrobj.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded')
//send後のステータス変化毎のアクションを指定
xhrobj.onreadystatechange = function() {
//readyState値は4で受信完了
if (xhrobj.readyState==4)
{
//コールバック関数
on_loaded(xhrobj);
}
}
//send メソッド
xhrobj.send( data);
//連続クリック防止のため、ボタン無効タイマーを設定
var btn_L = document.getElementById('button_L');
var btn_R = document.getElementById('button_R');
btn_L.disabled = true;
btn_R.disabled = true;
setTimeout('buttonenable()', 500); //0.5秒ボタンを無効後に解除
}
//コールバック関数 ( 受信時に実行 )
function on_loaded(obj)
{
//レスポンスを取得
res = obj.responseText;
//デバッグ用、レスポンス内容をAlertDialogに表示
alert(res);
}
</script>
コード②
<script language="JavaScript">
//画面遷移時の処理
window.onbeforeunload = function(){
var xhrobj = new XLMHttpRequest();
//var hhrobj = createHttRequest();
xhrobj.open("GET","/cgi-bin/stream_stop.py", true);
xhrobj.onreadystatechange = function(){
console.log(xhrobj.responseText);
};
xhrobj.send();
}
</script>