本次案例我将通过一个很简单的图片查看器的例子来和大家一起来了解一下最佳实践
首先我们先来看一下最终效果
这个例子非常简单,首先用html和css来做布局,比如先做成这个 样子
然后利用js技术来实现图片的点击切换,最终可以实现切换的样子
这些都是很简单的就在这里不说了,我们主要通过这个案例来了解一下最佳实践
- 凡是做事情都要为自己留一条后路,这在最佳实践中被称为平稳退化;我们都知道现在还是有一些不支持javascript语言的浏览器被少数人使用着,因此我们必须要考虑到,如果浏览器不支持js,我们如何更好的为用户呈现一个页面
- 比如下面的代码
<a href="img/大话西游.jpg" title="我的意中人是绝世美人">大话西游</a>
- 这个代码当用户点击的时候,如果浏览器支持js,我们就以查看器的形式查看图片,并且从而阻止默认事件;如果浏览器不支持js,我们就以链接的方式打开图片,这就是一个很好的处理
- 再比如说,如果浏览器不支持我们用到的document.getElementById等dom操作方法怎么办,因此我们需要当浏览器不支持时,使用return false;让其返回,从而不会报错
//向后兼容(最佳实践)
if(!document.getElementsByTagName){
return false;
}
if(!document.getElementById){
return false;
}
- 再比如说,我们获取的资源丢失了怎么办,我们书写的标签被人改动了怎么办,这种情况出现了,我们该怎么办;因此,我们需要当出现意外情况时,要么返回,要么提示用户等等
//预防所获取的元素不存在
if(!document.getElementById('imagegallery')){
return false;
}
//判断title是否存在
if(this.getAttribute('title')){
let target_img_title = this.getAttribute('title');
let target_img_text = document.getElementById('show_text');
target_img_text.innerText = target_img_title;
//判断其第一个子节点是不是文本节点
// if(target_img_text.firstChild.nodeType == 3){
// // target_img_text.firstChild.nodeValue = target_img_title;
// }
}else{
let target_img_text = document.getElementById('show_text');
target_img_text.innerText = '该资源标题丢失';
}
- 以上都是需要我们考虑的问题,我们不能因为一些情况把一个错误的页面呈现给用户,最起码给用户一些提示,比如浏览器不支持有些高级动画时,可以提示用户去更换浏览器,不要给用户一大片空白,让用户去猜,去想,那就很不好了
- 最后,我们要做到把结构,样式,行为相分离,从而能更好的去维护页面
说明:图片来源于网络,如有侵权,请联系作者删除