2017/06/28

HTMLを動的に書き換えよう3

第3弾、HTMLを動的に書き換えるのも慣れてきて、 Ajaxもわかってきたので、時刻をAjaxで取得する時計を作ってみた。 以下コードです。
サーバ側です。

Ajaxrq-py-time.cgi

#!/usr/bin/python
# -*- coding: utf-8 -*-

from os import environ
from datetime import datetime

import cgi

json1 =  '''Content-Type: application/json; charset=utf-8

{
'''
json2 = '"time": ' + "\""+ datetime.now().strftime("%Y/%m/%d %H:%M:%S") + "\"\n"
json2 += "}"

print json1+json2



クライアント側です。

Ajaxrq-loop.html

<HTML>
<HEAD>
  <script type="text/javascript">

var xmlHttp;

function getAjax(){
  xmlHttp = new XMLHttpRequest();
  xmlHttp.onreadystatechange = update;
  xmlHttp.open("POST", "http://192.168.11.14/cgi-bin/Ajaxrq-py-time.cgi", true);

  xmlHttp.send(null);
}

function update(){
  if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
    var obj = JSON.parse(xmlHttp.responseText);
    document.getElementById("time").innerText= obj.time;
    if(sw=="ON"){
        getAjax();
    }
  }
}

let sw="OFF";
function onoff(){
    let i=true;
    if(sw=="OFF"){
        sw="ON";
        document.getElementById("onoff").innerText="OFF";
        i=false;
    }
    else{
        if(i){
            sw="OFF";
            document.getElementById("onoff").innerText="ON";
        }
    }
    if(sw=="ON"){
        getAjax()
    }
}

  </script>
</HEAD>
<BODY>
<div style="text-align:center;">
    <label id="time" style="font-size:40px;">TIME</label><br />
    <button type="button" id="onoff" onClick="onoff()" style="font-size:40px;">
        ON
    </button>
</div>
<BODY>
</HTML>

動作確認 アクセスしてみます。
ONボタンを押すとOFFボタンに書き換わり、時間が進みます。
OFFボタンを押すと止まります。
ご参考まで。

0 件のコメント:

コメントを投稿

AWSに手を出してフレームワークも使ってみたが・・・。

サイトを作り直しました。 AWS上に構築した Content created by AXY を作り直しました。 具体的にはbottle.pyを使ったpythonで構築したサイトからPHP7を使用したサイトに再構築しています。 特別何か問題点があったというわけで...