《JavaScript从入门到精通》学习笔记(1)

来源:互联网 发布:ubuntu jira 无法登陆 编辑:程序博客网 时间:2024/05/10 20:11

1.5 JavaScript不能做什么?

1.5.1 JavaScript不能强加于客户端
JavaScript依赖于其他界面和宿主程序来实现其功能。这个宿主程序通常是客户端的web浏览器,也叫用户代理(user agent).由于JavaScript是一种客户端程序,它只能做客户端允许它做的事情。

1.5.2 JavaScript不能保证数据安全性
由于JavaScript完全在客户端上运行,开发人员必须学会放手。程序一旦在客户的计算机上,客户将在数据发送回服务器之前可以对它做很多危险的事情。你不应该相信从客户端返回的任何数据。即使你已经使用了JavaScript验证了表单的内容,当它到达服务器时仍然必须再次验证这些输入。关闭了JavaScript的客户机可能会通过web表单返回垃圾数据。如果你天真地相信客户端的JavaScript函数已经检查了数据并确保它是有效的,那么你可能会发现无效的数据返回到服务器,造成无法预料并可能危险的后果。

1.5.3 JavaScript不能跨域
同源策略(Same-Origin Policy),它规定在一个域内运行的脚本不能访问来自另一个互联网域的属性,也不能影响来自同一个域的脚本和数据。例如,JavaScript可以用来打开一个新的浏览器窗口,但是这个窗口的内容某种程度上受到调用脚本的限制。如果(oracle.com)的一个页面包含JavaScript,那么这个页面不能访问其他域(microsoft.com)内执行的JavaScript。这就是同源策略的本质:JavaScript必须在相同位置执行,或者JavaScript必须来自同一位置。
同源策略常常限制了框架和AJAX的XMLHttpRequest对象发送多个JavaScript请求到不同的Web服务器。随着Internet Explorer8的引入,微软开始支持XDomainRequest对象,它允许有限地访问来自其他域的数据。
关于跨域请求见第19章。

1.5.4 JavaScript不能充当服务器
当使用Visual Basic .NET或PHP开发服务器代码时,你能够相当肯定服务器会执行某些函数,比如和数据库交互或者访问web应用所必需的模块。JavaScript代码所能做的事情有限,只能做脚本运行所在平台(通常是浏览器)内的事情。

1.5.5 使用JavaScript的提示。
- 强调功能重于形式
- 遵从标准
- 在多种浏览器中正确显示
- 在适当的时间使用适当的技术

0 0