Javascript作为一种前端脚本语言,主要功能是用于改善前端的用户体验。我们看见一些网页的显示效果,比方说菜单显示隐藏,图标移动和文字滚动大多是基于JS来实现的。作为改善用户体验的存在,通俗的讲就是起个锦上添花的表现效果,而不能影响正常的后台逻辑和最基本功能的实现。
通俗地讲,javascript平稳退化就是如果一个浏览器完全不支持js或者禁用js的时候,它的正常功能不会受到任何影响。比方说一个网站使用了大量javascript来优化页面,我们现在把浏览器的javascript给禁用掉,这个网站的显示效果会变得比较糟,但是基本功能不会受到影响:登录页面可以正常登录,表单可以正常提交等。
一些网站如果禁用js,它的基本功能就会受到严重影响,比方说某个链接打不开,表单无法提交等,这些都是不能实现平稳退化的。
举个比较简单的例子,就像表单提交,通常可以用<input type="submit">来实现提交功能,也可以使用Jquery的AJAX提交来实现:
$.post("/Words/CheckAnswer/", { Ask: Ask, Answer: Answer, Ids: Ids}, function (data) {...})
这样子也可以实现表单提交,但是如果浏览器的js被禁用了,这个就无效了。
如果非要在一些场合使用ajax提交方法又要兼顾js的平稳退化,我对于它的处理方法是预先在form中定义好一个submit按钮:
<form id="form" method="post" action="~/Words/CheckAnswer">
<input type="submit" id="sub"></form>
JS代码中默认设定submit不可见
<script>
window.οnlοad=function () {
document.getElementById("sub").setAttribute("style","display:none")
}
</script>
一旦js被禁用,对submit的隐藏就会失效,显示出来的submit按钮可以继续完成表单提交的功能