虽然JavaScript在过去的几年里已经成为Web开发的一个完整部分,但它也经常被错误地使用。结构,它就落了一个不好的名声。导致这个结果的原因是某些严重影响用户的JavaScript特效,如移动的页面元素和弹出狂口。这种情况你第一次看到印象会很深刻,但很快就变成了“有了也不错”,之后变成“没有更好”。

术语“用户代理(user agent)”和对其含义的缺乏理解同样也是个问题。通常用户代理是指一个浏览器,如微软的IE、Netscape、Mozilla、Firefox。但是浏览器不是Web上唯一的用户代理,其他的用户代理有:

1.辅助技术,用来帮助用户客服他们的缺陷——如语音合成(text-to-speech)软件或盲文显示器。

  2.纯文本代理,如Lynx。

   3.支持Web的应用程序。

   4.游戏控制台。

   5.手机。

   6.个人数字助理(PDA)

   7.交互式的电视机顶盒

   8.搜索引擎和其他索引程序

9.其他

这么多类型的用户代理,他们使用了不同的技术手段,对于JavaScript也是一个非常大的危险。

并不是网站所有的访问者都能体验你所应用的JavaScript增强,许多人都会处于安全的考虑关闭JavaScript(如果您的导航使用JavaScript制作,用户关闭JavaScript就无法浏览网页,因此您可能失去一位用户,而对于搜索引擎来说是无法访问JavaScript里面的内容)。JavaScript既可以用来做好事,也可以用来做坏事。如果操作系统允许,可以通过JavaScript在某台计算机上安装病毒或木马,或者读取用户的信息并且把它发送到另一个服务器上。

在大多数情况下,你可能想要一种服务器端的替代方案。它可以测试用户代理是否支持所需要的功能,如果不支持服务器会使用其他代替方案。

脚本语言的独立性对于网站是法律方面的要求,在英国的数字歧视法(Digital Discrimination Act)、美国法律50条款和世界上其他地区的法律总都有定义。这意味着如果你开发的站点没有JavaScript就不能使用,或你的JavaScript增强需要用户或用户代理在不低效运行的情况下具有一定的能力,那么你的客户就可以控告你歧视。

然而,JavaScrit既不是邪恶的也不是没用的,它是一个优秀的工具,可以帮助在平滑流畅的网站上冲浪的用户话费更少的时间。

更多javascript资讯

javascript 复制事件

javascript event 停止冒泡

javascript date.parse

javascript 禁止用户操作

验证文本框

xslt动态转化XML

windows对象open方法

javascript 全等

javascript not

转载于:https://www.cnblogs.com/gootry/articles/1936262.html

JavaScript存在的原因相关推荐

  1. 整理了5个JavaScript怪异行为及其原因

    作者 | 张旭乾       责编 | 欧阳姝黎 如果你用 JavaScript 写过项目或者参加过面试,那一定遇到过不少令人匪夷所思的问题.JavaScript 早期的规范不统一,也没有严格的标准, ...

  2. 5个 JavaScript 怪异行为及其原因

    如果你用 JavaScript 写过项目或者参加过面试,那一定遇到过不少令人匪夷所思的问题.JavaScript 早期的规范不统一,也没有严格的标准,再加上它的语法灵活多样,有些看起来就不正确的代码却 ...

  3. V8 JavaScript引擎研究(三)垃圾回收器的实现

    V8垃圾回收机制简介 V8垃圾回收器的实现,是V8高效的一个非常重要的原因. V8在运行时自动回收不再需要使用的对象内存,也即是垃圾回收. V8使用了全暂停式(stop-the-world).分代式( ...

  4. 【总结】IE和Firefox的Javascript兼容性总结

    长久以来JavaScript兼容性一直是Web开发者的一个主要问题.在正式规范.事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬.为此,主要从以下几方面差异总结IE和Firefox的Javas ...

  5. [译] 学习 JavaScript:9 个常见错误阻碍你进步

    本文讲的是[译] 学习 JavaScript:9 个常见错误阻碍你进步, 原文地址:Learning JavaScript: 9 Common Mistakes That Are Holding Yo ...

  6. JavaScript判断字符串中包含另一个字符串(QML 中使用)

    前言 为啥会搞JavaScript呢,原因很简单,因为 QML 中用到了 JS 的语法,本来在 Qt 里面 QString 检查字符串是否包含一个子串是非常简单的事情,直接用contains()函数就 ...

  7. javascript继承机制

    重新认识面向对象 为了说明 JavaScript 是一门彻底的面向对象的语言,首先有必要从面向对象的概念着手 , 探讨一下面向对象中的几个概念: 一切事物皆对象 对象具有封装和继承特性 对象与对象之间 ...

  8. JavaScript 中回调地狱的今生前世

    1. 讲个笑话 JavaScript 是一门编程语言 2. 异步编程 JavaScript 由于某种原因是被设计为单线程的,同时由于 JavaScript 在设计之初是用于浏览器的 GUI 编程,这也 ...

  9. Unobtrusive JavaScript介绍

    Unobtrusive JavaScript介绍 原文: http://blog.csdn.net/peterinor_/article/details/16367935 在asp.net MVC开发 ...

最新文章

  1. SpringBoot+Mybatis 框架之 @Select注解方式搭建
  2. vmware workstation 安装 fedora9+ vmware tools血泪史啊
  3. Linux命令之 mke2fs -- 格式化分区(为分区写入文件系统)
  4. 「日常训练」 Genghis Khan the Conqueror(HDU-4126)
  5. 三、Java Web中出现的一些乱码问题总结(详解)
  6. 建立数组并写入数据_VBA数组与字典解决方案第37讲:在VBA中字典的应用
  7. Linux笔记-手动配置yum及光盘安装rz
  8. Java建造者模式详解
  9. wpf 图片绝对路径引用_Python Pillow 图片处理
  10. piv图像处理文献综述_图像处理文献综述
  11. 血浆分拣机上位机人机交互界面设计
  12. 图数据库——Nebula Graph安装部署(含示例)
  13. unbuntu安装docker
  14. arduino电子时钟 简易版
  15. 【DL】第 9 章:新兴的神经网络设计
  16. 11.2 RAC 系列-安装新主机,识别老存储-识别ASM磁盘
  17. firefox 返回 16 进制 颜色值
  18. 他们是我的父母 我能怎么办?
  19. 石旮旯村记【无标题】
  20. 百度云云服务器搭建私服

热门文章

  1. 单防区扩展模块怎么用_Zens推出模块化可扩展无线充电器 可为6台设备同时供电...
  2. 【Python-ML】神经网络-深度学习库Keras
  3. Hive表联合查询语句参考
  4. 【Python学习系列十八】基于scikit-learn库逻辑回归训练模型(delta比赛代码3)
  5. 深度对比Python(Numpy,Scipy)与Matlab的数值精度
  6. Acronis Disk Director Suite(windows7分区工具)
  7. developer console 学习
  8. stm32F105的can2问题
  9. 常用数据库的Jdbc连接代码
  10. 第3周实践项目5 -顺序表的应用 拆分单链表