Authentication




Cancel OK
B!コメントする  2013-03-13 15:31:00 by old

いまさら非同期通信

本当にいまさらなんだけど
非同期通信
なるものをやってみた。

仕事で必要に迫られたわけでもないんだけど、バリバリに使いこなせないまでも
使った経験があるというのが大きいというのは経験として大いにあるので簡単なものを作ってみた。

もちろん最初から全て自作を考えたんだけど、逆にメンテや互換性を考えるとJQueryの方がいいだろうと思いそちらを利用することにした。

サンプルは以下

syncsample.html

<html>
<head>
<title>synchro</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script></head>
<body>
<script type='text/javascript'>
<!--
function synctest(){
$('#message').load('asynchro
text.php');
}
//-->
</script>

<H1>非同期通信テスト</H1>
<div class='msg' id='message'>ここにメッセージ出てくるよ</div>
<input type='button' value='sync start' onclick='synctest();'>
</body>
</html>


asynchrotext.php
<?php
if( (rand(0, 2) % 2) == 0 )
{
echo '割り切れてるっす';
}
else
{
echo '割れるわけないっす';
}
?>


この2つのファイルを用意します。

sync startボタンをクリックすると
asynchro
text.php
にあるテキストがランダムに表示されるようになります。

驚くほど簡単。
これが非同期通信。

さらにこれを3秒おきに自動で更新するように改造してみます。

サンプルはこんな感じ

<html>
<head>
<title>synchro</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script></head>
<body>
<script type='text/javascript'>
<!--
function synctest(){
$('#message').load('asynchro_text.php');
}
//-->
</script>

<H1>非同期通信テスト</H1>
<div class='msg' id='message'>ここにメッセージ出てくるよ</div>
<input type='button' value='sync start' onclick='synctest();'>
<script>
setInterval( function () {
// 3秒ごとに更新
synctest();
} , 3000 );
</script>
</body>
</html>


最後に

<script>
setInterval( function () {
// 3秒ごとに更新
synctest();
} , 3000 );
</script>


を付け足しただけです。
これで3秒おきもしくは「sync start」をクリックするとメッセージがランダムに表示されるようになります。

こんなに簡単に出来ること自体がもう犯罪の臭いがしますけど
再読み込みなんかしないでもこれで勝手に更新されると思うと
ネットワークの負荷も多少は減るのかな~とか思ったりもしたりします。


JavaScript  

  • コメント
  • コメントはまだありません