プロが教える店舗&オフィスのセキュリティ対策術

環境:OS-XP, IISver6.0, PHP4, Jacascript, HTML

HTMLからjsの関数を3つ呼び出し、そのうち1つ目の関数がPHPを呼び出すプログラムで、思い通りの動きをしないことからデバッグしていったところ、js内の3つの関数を実行してからPHPの関数を実行しているようでした。なぜこのような動きになるか教えてもらえませんでしょうか。

想定していた実行順序:☆
デバッグした時実行された順:※

.html
onchange="fTest(this)" ※1 ☆1

.js
function fTest(obj){
getInfo(obj); ※2 ☆2
getMore(obj); ※3 ☆4
setInfo(obj); ※4 ☆5
}

function getInfo(obj){location.href = "Info.php?status=getInfo"; }
function getMore(obj){}
function setInfo(obj){}

.php
if($status == 'getInfo'){-略- ※5☆3}

宜しくお願いします。

A 回答 (2件)

なんとも言えませんが非同期につくってあるのでは?


なぜと言われればプログラマがそう作りたかったからです
    • good
    • 0
この回答へのお礼

非同期。。言われてみればそうかもしれませんね。。
ありがとうございました。

お礼日時:2008/08/22 19:27

location.hrefを変更した時点でスクリプトを終了して、ページを移動しても不思議ではないわけで。



getMore()とsetInfo()は、phpから出力している同じ名前の関数が実行されているのではないでしょうか?

この回答への補足

私もそれを疑ったのですが、そうでもなくて。
回答ありがとうございました。

補足日時:2008/08/22 19:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!