js中的容错处理 与 ssi 在ftl中无法容错 与 字符串转变量

1》JS中我们可以 做任何数据的容错。

比如:使用对象前判断对象是否存在,

 

if(typeof ob !="undefined"){alert(1) }

否则会报错

 

再比如:使用某个DOM节点的属性时,判断是否为存在,

typeof($("#aa").attr("data-type"))!="undefined"

 

在JS 中不像在服务端编译解析FTL

我们是单纯的从浏览器客户端考虑这个问题,

那么,没有什么是容错不了的。

你定义的你没定义的。存在的不存在的。等等......
3》下图通过ssi的方式引入的静态页是无法容错的,很显然是因为是ftl 在服务端解析的, 在服务端解析编译成  html的时候,如果这个静态页不存在的话,那么就会返回404页面片段。相当于ftl编译的静态页当中,有一块引入的这个html  静态页是  404的。所以,这种方式引入的 html 此文件是必须要求存在的。

 

 

5》字符串转变量

window["prop"] = {};

window.prop={};

如果是上面这种场景就不需要转了。

下面是字符串数组,转为变量。相当于把这每一个字符串通过[]号的方式变为一个新的对象的属性。

var a = ['a', 'b',  'c']
var obj = {}
for(i = 0; i < a.length; i++){
    obj[a[i]] = "abc" + 1
}
alert(obj.a)
 alert(obj.b)
  alert(obj.c)
 
如果不想使用obj
可以为
for(i = 0; i < a.length; i++){
    window[a[i]] = "abc" + 1
}
alert(a)
 alert(b)
  alert(c)
但是不推荐这么用,最好是第一种方法。

 

posted on 2017-04-28 10:31  andyroyal  阅读(427)  评论(0编辑  收藏  举报

导航