博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php+ajax+js模板引擎art-template相关笔记(一)
阅读量:5054 次
发布时间:2019-06-12

本文共 2288 字,大约阅读时间需要 7 分钟。

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

你可能感兴趣的文章
svn 图标不显示
查看>>
getElement的几中属性介绍
查看>>
iOS 使用Quartz 2D画虚线 【转】
查看>>
平面最接近点对
查看>>
HTML列表,表格与媒体元素
查看>>
PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
查看>>
感谢青春
查看>>
Jquery Uploadify4.2 falsh 实现上传
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
linux基础-命令
查看>>
java对象的深浅克隆
查看>>
Hadoop流程---从tpch到hive
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
shell判断网络主机存活
查看>>
根据时间戳,增量同步数据的解决办法
查看>>
03 SeekBar 音频播放拖拽进度条
查看>>
自定义view实现阻尼效果的加载动画
查看>>
清北学堂的小技巧和小收获
查看>>
模型压缩方向一个很牛的paper
查看>>