本节书摘来自异步社区《JavaScript设计与开发新思维》一书中的第1章,第1.7节,作者:【美】Larry Ullman著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 JavaScript编程目标

开始一次新的尝试时,不管是第一次学习JavaScript还是为了学习更好、更现代的JavaScript技术,都应该设定一些目标。网站的目的当然是为了让客户(使用Web浏览器的最终用户)查看和使用。如果访问者无法使用一个网站,你作为Web开发人员的工作就失败了。朝着这个目标,网站的功能应该在所有浏览器上都能实现,包括移动设备上的浏览器、非可视化浏览器、禁用JavaScript的浏览器和旧的浏览器。完成这一目标比你想象的更容易,这要归功于渐进增强(progressive enhancement)方法。

渐进增强指的是创建可靠的基本功能,然后在支持增强功能的浏览器上改进的过程。例如,处理表单提交的标准方法是将表单数据发送给服务器端资源(参见图1.3)。前面已经讨论过,JavaScript能够使用Ajax完成相同的功能(参见图1.5)。渐进增强意味着你应该首先实现标准的方法,然后在可能的时候拦截这一方法。本书从下一章开始将不断地阐述渐进增强的实施。

这并不是说不能合理地排除一些用户。例如,在老式浏览器上HTML5的奇妙功能不可能正确地表现,iOS设备(iPod、iPad和iPhone)不支持Flash。如果一个网站绝对需要Flash,就必须意识到,有许多人将被排除在外。但是对于大部分网站来说,目标应该是支持尽可能多的浏览器。

一个网站不但应该在任何浏览器上都能工作,而且不应该试图破坏浏览器的常规表现。多年来,JavaScript程序员曾经阻止用户单击“返回”按钮、使用浏览器历史、访问上下文菜单等。对于大部分情况来说,JavaScript应该改进用户体验,而不是彻底改变它。没有什么正当的理由让浏览器以不同于用户所习惯的方式工作。(至少,如果你的网站依赖于禁用常见的浏览器行为,当一位没有JavaScript的用户访问时你就会遇到麻烦。)

其次,为了使代码更容易维护,你应该采用无干扰(unobtrusive)JavaScript技术。这一术语指的是将JavaScript代码与HTML页面分离,第2章将从这种技术对实际代码的影响开始讨论。

最后,现代的JavaScript编程应该适合于整个Web的当前状态。可以将它看作一个模范公民或者好的父母:展现应有的质量。这不只适用于JavaScript,也适用于HTML和CSS。第2章将确立这一目标的某些特性,例如采用语义HTML。

这些是现代JavaScript编程的目标。本书的目标是在实际代码中正确地实现这些目标,同时将JavaScript当作一种语言来教。

《JavaScript设计与开发新思维》——1.7 JavaScript编程目标相关推荐

  1. 在程序员上看到《企业开发新思维:COID模式简述》,有感

    2006年12月这期的程序员上登了这样一篇文章<企业开发新思维:COID模式简述>,看完全文,我大胆总结了一下,主要的思想应该是使用组合ID建立唯一的对象标识符,然后通过使用一些算法来识别 ...

  2. html网站开发实例教程,网页设计与开发——HTML、CSS、JavaScript实例教程

    网页设计与开发--HTML.CSS.JavaScript实例教程[编辑] 作 者:郑娅峰 主编 出 版 社:清华大学出版社 出版时间:2009-7-1 版 次:1 页 数:309 字 数:509000 ...

  3. python三维建模_3D One 2.5引爆新思维,用趣味编程来实现3D建模!

    原标题:3D One 2.5引爆新思维,用趣味编程来实现3D建模! 3D One2.5正式版终于和大家见面啦!新版本全新推出趣味编程,让3D模型也能通过编程逻辑来完成,丰富你的创新想象力.这给有计划开 ...

  4. web网页设计与开发:基于HTML+CSS+JavaScript简单的个人博客网页制作期末作业

  5. python实现3d建模工具_3D One 2.5引爆新思维,用趣味编程来实现3D建模!

    3D One2.5正式版终于和大家见面啦!新版本全新推出趣味编程,让3D模型也能通过编程逻辑来完成,丰富你的创新想象力.这给有计划开展编程和3D设计课的学校提供了支持,在2018年高中新课标提出的加强 ...

  6. 《.Net 软件设计新思维:像搭积木一样搭建软件》成书背后的故事

    本文节选自<.Net 软件设计新思维:像搭积木一样搭建软件 >一书 前   言 一个真实的故事 1996 年 10 月,一套经历了 2 年多时间开发出来的商务管理软件终于问世了,它带给我们 ...

  7. javascript 一次开发,多平台运行

    0x00. 前言 早上起床惯例刷刷微博,突然看到 React Native 宣布支持 Android 的消息,一时感觉 Facebook 太给力了,不仅没有推迟发布 React Native For ...

  8. JavaScript与Ajax开发作业

    JavaScript与Ajax开发练习 刚学完JavaScript,把作业记录一下,仅供参考. 支持请点赞三连 **从第二题到最后的源码请参考: 链接: https://pan.baidu.com/s ...

  9. 博客园开发征途又添新书《.NET软件设计新思维——像搭积木一样搭建软件》出版...

    经过半年的编写,这本书终于与大家见面了,希望本书能给朋友们更多的编程帮助.     特别感谢微软MVP中国区最有价值专家主管--林思绮 为本书作序,还有MVP好友王涛.周金桥.郑健为本书做的校验与书评 ...

最新文章

  1. 快速把web项目部署到weblogic上
  2. java.util.concurrent.Exchanger应用范例与原理浅析--转载
  3. 什么是浏览器跨域访问操作,js如何实现?
  4. 案例 网络电视精灵 c# 1614265410
  5. 常识分析 | 为什么 CPU 访问硬盘很慢
  6. unity 制作书本 翻页效果
  7. OPPO技术开放日第二期启动,聚焦碎片化场景下的流量探索
  8. springboot2.0 配置自定义提示功能依赖
  9. 用python爬取微博评论对鹿晗、关晓彤微博进行情感分析
  10. 努力是你最幸福的时候
  11. python爬取高德地图_爬虫实战:如何爬取高德地图?
  12. php无法获取操作系统信息,如何获取操作系统信息
  13. Spring Cloud学习资料01
  14. 软件工程逻辑覆盖测试
  15. NIST 网络安全相关标准 美国 (简单整理)
  16. LeetCode力扣(剑指offer 41-68)
  17. 发票自动处理——摆脱纸张和数据输入的束缚,自动化工作流程和异常处理,大幅缩短审核准备时间
  18. Win10系统安装MySQL5.5.62 解压版
  19. PHP 设计模式之最全面,最简单的讲解
  20. COM技术初探(一)

热门文章

  1. 51cto博客程序错误
  2. go标准库的学习-time
  3. 关于mac的一些常用操作记录
  4. 今天玩了一晚Vs2005,差点吐血!
  5. es6箭头函数this问题
  6. 英特尔变身数据公司 未来最大数据市场定是中国
  7. Fabio 安装和简单使用
  8. 用 mongodb + elasticsearch 实现中文检索
  9. 为什么Java要把字符串设计成不可变的
  10. python之if和while控制流