在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.編譯測試