如何在appweb中使用javascript

在appweb中使用javascript和在其它服務器中使用時類似,這裏簡單記錄,方便以後查看

這裏的工程是基於博客http://blog.csdn.net/xiaominthere/article/details/38756421中的工程

1.頁面

在client文件夾下建立一個js文件夾,將jquery.js文件拷貝到js文件夾下

修改index.esp

每隔1s就向服務器發起獲取服務器時間的請求,顯示到頁面

<html>
<head>
<title>MyJS</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function getTime()
{
    var xmlhttp;                        
     if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }else{// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
                            
    }
    setInterval(function() {
                         xmlhttp.open("GET","/do/login/time",true);
                         xmlhttp.send();
                        }, 1000);
}
</script>
</head>
<body onLoad="getTime()">

<div id="myDiv"></div>
</body>
</html>
2.響應

修改login.c

/*
    login Controller for esp-html-mvc (esp-html-mvc)
 */
#include "esp.h"
#include <time.h>
static void checkLogin() {
    cchar *name = param("name");
    cchar *pwd = param("pwd");
    if(smatch("abc",name) && smatch("123",pwd))
    {
        renderView("login/login-ok");
    }else{
        renderView("login/login-error");  
    }      
}
static void getTime() {
    time_t timep;
    time (&timep);
    char *time = ctime(&timep);
    HttpConn *conn = getConn(); 
    HttpQueue   *q = conn->writeq;
    httpSetStatus(conn, 200);
    httpWrite(q, time);
    httpFinalize(conn);
}
static void common(HttpConn *conn) {
}

/*
    Dynamic module initialization
 */
ESP_EXPORT int esp_controller_mylogin_login(HttpRoute *route, MprModule *module) {
    espDefineBase(route, common);
    espDefineAction(route, "login-cmd-check", checkLogin);
    espDefineAction(route, "login-cmd-time", getTime);
    return 0;
}
3.編譯測試




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章