js标签概述
- 设想情景
- 设想一下,一个站点有10w篇资讯,每篇资讯有几个广告,生成了htm静态文件;
- 有一天,我们要把某个广告换下来,那这10w个静态文件,是否要重新更新一次???
- 10w个不愿意!所以就用
js标签
来解决此问题。
- 使用场景
- js标签 用于 在静态文件中(当然也可以是动态文件),js动态显示一些信息块,如:
- 动态显示广告信息块,
- 动态显示 点击量,评论数,
- 动态显示 评论列表 ……
js数据标签
- 对应的 js标签
- 参考上节的 数据标签,除分页Page标签外,都有对应的js标签;
- 在原有类别前加小写js即可;
- 所有属性,除了
order
,where
外,其它几乎不变;
- Demo
- (js标签的news列表) 模板代码,
查看效果,
- 查看效果页html源代码:模板解析结果:
<div id='jsid_tags_{tpldir}_{tplname}_t1'><!--[{tpldir}/{tplname},t1][List][modid,news][limit,3]--></div>
- {tpldir} 为模板目录下的子目录,{tplname} 为模板(文件)名
- js效果渲染
- 解析的结果并非最终效果,仅仅是一个标记位;
- 此时需要加载系统的js,并运行一个js函数进行渲染:
- 加载系统的js:
<script src='/index.php?ajax-comjs&act=initJs&tpldir=demo'></script>
- 运行js函数:
<script>jtagSend()</script>
- 重要提示
- 常规数据,应尽量避免使用js标签调用;
- 如果一定要用,应尽量避免复杂的条件和排序;
- 为了安全(否则可任意在url中组装sql字句)起见,系统屏蔽了
order
,where
属性;
js动态字段
- 调用情景
- 新闻模型为
news
,id为:2019-87-65ab
,
- 评论模型为:
nrem
,网站留言模型为:gbook
,
- 需要动态显示新闻的点击量,评论数;
- Demo
- 代码如下
点击:<i id="jsid_field_news:2019-87-65ab:click">{=$click}<!--,add1--></i>次
评论:<i id="cnt_nrem">0</i>条 (下一行会通过id=cnt_nrem
属性吧结果更新到这此)
评论:(<i id="jsid_count_nrem:2019-87-65ab">0<!--news,cnt_nrem
--></i>条)
网站留言:(<i id="jsid_count_gbook:0">0</i>条) //所有留言条数
- 代码/效果
js广告调用
- 调用情景
- 有广告模型为
adpic
,adxxx
,
- 广告位(栏目分类)为:
aphom
,apinn
,yyhom
,
- 动态显示如上广告;
- Demo
- 代码如下
<div id='jsid_advs_adv1'><!--adpic:aphom--></div>
<span id='jsid_advs_adv2'><!--adpic:apinn--></span>
<div id='jsid_advs_advx'><!--adxxx:yyhom--></div>
- 代码/效果
- 规范:
- 广告的id属性,用
jsid_advs_
开头,且同一页不要重复;
- 格式,
广告模型:广告栏目
,用<!--model:catid-->包起来,是避免广告加载前显示这些字符;
- 多个js广告标签,统计标签,js常规标签,会合并,减少http请求;
- 但因为url地址长度有限,目前同一页js标签太多,参数超过2000会分多次获取;
- 提示:List:列表标签 调用广告
- 具体见 上一节:【数据标签】 > 【List:列表标签】
- 注意切换 广告的 模型,栏目类别
- 广告被屏蔽说明
- 某些浏览器,会屏蔽
ad
,adv
,banner
等字符开头的广告图片;
- html-dom, css-class, 文件夹名称, 文件名称·······,都尽量不用这些关键词;
- 本系统默认影响:初步测试,暂未影响;
- 广告终结者规则语法(参考)。