php+ajax+js模板引擎art-template相关笔记(一)

1.封装的ajaxGet、ajaxPost、ajaxTool方法优化成只用一个参数,这个参数就是json对象,这样的好处在于不会因为传递的参数的位置有变化,导致参数使用的时候出现错误,因为你只传递了一个json对象,里面的属性位置怎么改变都没有问题,只要属性名称不变就行了。


2.php中随机获取数组中的几个键(索引值或者key),array_rand($arr,1);表示随机获取数组中的一个键。


3.php中的json解码与json编码
◆json解码:将json字符串解码成php中的数组对象【json_decode($jsonStr);//将json字符串解码成php中的数组对象(关系型数组对象或者普通数组对象)

◆json编码:将php中的数组对象编码成json字符串

json_encode($arr);//将php中的数组对象编码成json字符串



4.json这种格式的字符串基本上在所有的语言中都能够通过某种方法进行转化
◆js中:JSON.parse(jsonStr);//str转化为js对象
◆php中:json_decode($jsonStr);//str转化为php对象


5.js中正则表达式的exec方法,这个方法用于检测字符串,返回值是一个数组,数组中装的是先匹配到的那个目标字符串,数组中只有一个元素
【var str="我是name,今年age岁了";
var arr=/\w+/.exec(str);
console.log(arr);//[name]
】,并且这个方法配合字符串的replace方法可以实现替换所有符合要求的目标字符串【
var str="我是name1,我就是name2,我还是name3";
var json={name1:"熊猫",name2:"老虎",name3:"松鼠"};
var regx=/\w+/;
var result=null;
while(result=regx.exec(str)){
var key=result[0];
str.replace(key,json[key]);
}
console.log(str);//我是熊猫,我就是老虎,我还是松鼠



6.exec方法返回的是一个数组,默认情况下每次只会返回一个元素,但是特殊情况下会返回多个,比如【
var str="我是{{name}},喜欢{{hibbit}},想{{haha}}";
var regx=/{{(\w+)}}/;
var arr=null;
while(arr=regx.exec(str)){
console.log(arr[0]);//{{name}}
console.log(arr[1]);//name
}
】,如果正则表达式中有(),()不光能够提升优先级,并且还能够作为提取组,提取组中的字符串也会被放入数组中去。


7.自己制作简单的模板引擎【
function fox_template_pro(str,info){


//要准备被替换的字符串
var str=str;
console.log(str);


//要准备替换到字符串中关键字的对象
var info=info;


//正则表达式  约定好的标记
var reg=/{{(\w+)}}/gi;


var result;//每一个匹配后获取到的数据


//循环匹配
while(result=reg.exec(str)){
//exec方法返回的是一个数组,默认情况下每次只会返回一个元素,但是特殊情况下会返回多个


//获取外面的值 {{(\w+)}}
var outvalue=result[0];
//获取内部的值 (\w+)
var invalue=result[1];


//进行替换
str=str.replace(outvalue,info[invalue]);
}
console.log(str);
//替换完毕后 返回值
return str;
}



8.推荐一款js的模板引擎(art-template),使用方法简介
◆首先导入模板引擎,也就是引入脚本(template-native.js或者template.js)
◆定义模板(使用script标签,但是type不能写成text/javascript或者为空,防止浏览器将模板按照javascript进行解析,type可以写成 text/html)
◆定义对象(模板对象和json对象)
◆调用模板引擎的template方法传入对象(只能接受对象,不能接受数组)
◆获取方法的返回值
◆如果出现了 template error 一般都是模板出错  去找你定义的模板(如 for循环只写了开头没有结尾,for中的分隔符写成了逗号)
◆简洁语法:https://github.com/aui/art-template/wiki/syntax:simple
◆原生语法:https://github.com/aui/art-template/wiki/syntax:native
★有两种语法的就有两种脚本,简洁语法对应了template.js,原生语法对应了template-native.js,有这两种语法的原因是,防止服务器端的模板引擎与原生js 的模板引擎起冲突,也就是防止js模板引擎与服务器端的模板引擎有共同的代码片段导致冲突造成影响。

转载于:https://www.cnblogs.com/jwlLWJ2018/p/9247787.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值