JavaScriptでAJAXをやろうとすると、手順が多かったりIE6用のコードが必要だったりめんどくさい。
でも、Haxeなら簡単。
例えば、data.xmlから読み込んだデータをalertで表示する場合。
同期通信
Main.hx
import haxe.Http;
import js.Lib;
class Main {
static function main() {
Lib.alert( Http.requestUrl("data.xml") );
}
}
データを読み込む処理自体はHttp.requestUrl("data.xml")だけで終わっています。
非同期通信
必要最低限のコードはこんな感じです。
Main.hx
import haxe.Http;
import js.Lib;
class Main {
static function main() {
var http = new Http( "data.xml" );
http.onData = function( data:String ){ Lib.alert( data ); }
http.request( false );
}
}
さらに、ポストしたりエラー処理を行ったりというもっと細かい処理ももちろん書けます。
Main.hx
import haxe.Http;
import js.Lib;
class Main {
static function main() {
var http = new Http( "data.php" );
http.onData = function( data:String ) { Lib.alert( data ); }
http.onError = function( msg:String ) { Lib.alert( msg ); }
var name = "hoge";
var address = "hogehoge";
http.setPostData( Std.format( "name=$name&address=$address" ) );
http.setHeader( "Content-Type", "application/x-www-form-urlencoded" );
http.request( true );
}
}
ちなみにこれらのコードはIE6対応がされてます。