ASP输出JSON,jQuery.get异步请求,HTML5本地存储,JavaScript分页显示

以英语九百句English.mdb数据库为例。

English.asp:连接数据库、读取记录集、输出JSON格式数据

<%@CODEPAGE="65001"%>
<%
Response.charset="utf-8"
Set conn = Server.CreateObject("ADODB.Connection")
conn.provider="microsoft.ace.oledb.12.0"
conn.open server.mappath("/db/english.mdb")

Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open "select * from sentence",conn,1,1
total=rs.recordcount
'==输出JSON格式数据==============
'json封装时需要注意干扰符号",[]{}之类的。需要对其进行编码解码。
'Response.Write("{""total"":""92"",""content"":[")
Response.Write("[")
For i=0 To total-1
	Response.Write("{")
	For j=0 To rs.fields.count-1
		Response.Write(""""&rs(j).name&""":"""&escape(rs(j))&"""")
		IF (j<rs.fields.count-1) Then Response.Write(",")
	Next
	Response.Write("}")
	If i<total-1 Then Response.Write(",")
	rs.movenext
Next
Response.Write("]")

%>
english.html 使用jQuery.get异步获取English.asp数据,并进行本地存储localstorage,随机显示一条记录定时刷新(分页显示到页面*).

<!DOCTYPE html>
<html >
 <head>
  <title> 英语九百句--ajax/localstorage </title>
  <meta charset="utf-8">
  <script src="http://eduppp.cn/js/jquery-2.1.4.min.js" type="text/javascript"></script>
 </head>
<script type="text/javascript">
var local_content;
	//获取当前localstorage数量:localStorage.length
	//获取localstorage各个名称:localStorage.key(2)
	//获取localstorage变量内容:localStorage.getItem("xxxx")
	//删除localstorage变量:localStorage.removeItem("xxxx")
	//清除localstorage:		localStorage.clear();
	//alert(localStorage.getItem("content"));
	//javascript 大小写敏感:对象、数组、变量、字段名
	//json封装时需要注意干扰符号",[]{}之类的。需要对其进行编码escape解码unescape。
$(function(){
	if (localStorage.getItem("content")==null )	{
		setstorage("content");
	}else{
		rnd_list();
	}
});
function setstorage(id){
	$.getJSON("english.asp",function(data){
		localStorage.setItem(id,JSON.stringify(data)); 
		rnd_list(); 
	});
}
function rnd_list(){
	local_content= JSON.parse(localStorage.getItem("content"));
	var n=Math.floor(Math.random()*local_content.length);
	$("#res").html(unescape(local_content[n].English)+"<br>"+unescape(local_content[n].Chinese));
	setTimeout(function(){rnd_list();},3000);
}

</script>

 <body>
	 <div id="res" ></div>
 </body>
</html>

===========

分页显示(待续)

Asp 这个老古懂估计没几个人在用了。几年没写代码了,最近要弄个小东西,给手机端提供json数据,不想麻烦别人,自己又只会asp,没办法就自己动手了。网上找了好久都没有一个人能完整的把asp操作json说清楚。最后还是自己搞定的。整出来共享给大家。(ps,还有个原因csdn的分不够用啦,大家看着给点吧。写这个说明文档都用了我两小时。^_^) 以下是示例代码 '说明:json.asp中引用了json.js.asp '其他见文档 '手机很多时候不认gb2312,跳入json的坑就忘记gb2312吧,讨厌的是,如果代码报错,iis会输出gb2312,结果就是乱码,有点烦。 '自己想办法解决吧 response.Charset= "utf-8" dim strJsonData,ovbJson,j dim arrTemp,varname ,i set ovbJson=new vbJson 'asp recrodset和数组转json字符 arrTemp=array("a","{""oa"":""我是oa""}","c") strJsonData=ovbjson.toJson(empty,arrTemp,true) '转换为Json格式的字符串,有兴趣可以自己输出看看是什么 set j=json.parse(strJsonData) '序列化为json对象(或者是数组对象) response.Write(j.get(1)&"") '别用vb数组来存json对象,不然得每个元素去重新序列化,这里如果想j.get(1).oa就不行了。必须对j.get(1)单独序列才行 '----recrodset就不演示了,懒得连数据库 '---自定义操作方法的演示--- strJsonData="{a:1,b:[{c:'我是数组中的点c'}]}" set j=json.parsestr(strJsonData) response.Write(j.b.get(0).c&"") '添加节点的时候注意,如果值是null,会被忽然,这个节点会不存在的。在添加之前记得先检查值 set j=json.add(j,"new","我是新加的节点") response.Write(j.new&"") '下面这句注掉了,是因为这个操作是无效的因为j.b是数组,不能add 'set j=json.add(j.b,"new1","我是加不进的节点") set j.b=j.b.put(j.b.length,j.b.get(0)) response.Write(j.b.get(1).c&",我是新加的数组元素") '因为数组的get方法不允许被赋值,所以不能像下面这样写 'set j.b.get(0)=json.add(j.b.get(0),"new","我会报错") json.add j.b.get(0),"new","我是新加的new我不会报错" json.add j.b.get(0),"new1","我是通过变量取出来的哦" response.Write(j.b.get(0).new&"") varname="new1" response.Write(json.byname(j.b.get(0),varname)&"") for i=0 to j.b.length-1 varname="c" response.Write(json.byname(j.b.get(i),varname)&"我是循环出来的c,索引:"&i&" ") next '最后完整的输出给手机就这样: response.Write json.stringify(j)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值