ajaxs
AJAX 是一种独立于 Web 服务器软件的浏览器技术。AJAX 基于下列 Web 标准:JavaScript XML HTML CSS 在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。
不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。 通过AJAX,因特网应用程序可以变得更完善,更友好。下面为大家介绍Ajax开发守则。
1.前、端后都要做好安全的把关工作
不能单靠前端做安全验证工作,后端也必须有过滤机制,检验前方传来的资料。由于Ajax也会接收后端传送来的资料,对这些资料都要采不信任态度,必须加以检查。
2.尽量以HTTP POST方法传输资料
使用GET方法容易让有心人士得到资料,虽然POST并非万无一失,但比起GET至少较为安全。
3.不要直接用eval函式唤起JSON物件
JSON是采用JavaScript物件实字的资料格式,从后端传到Ajax程式时,必须采用eval函式将它从字串转成物件,这时必须先行检查资料中是否有非法字元,以免非法程式借机启用。
4.限制使用者可用的HTML语法
许多Ajax网站允许使用者在留言中使用HTML语法,而某些特定语法应该严格限制,例如<plaintext>或是<!- -这类语法,都会让置于之后的程式码失效。
5.禁止可留言的网页页面使用JavaScript语法
虽然乍看之下觉得不可思议,不过的确在一些部落格平台上发生过,这让XSS攻击开了大门。
6.使用Ajax框架,必须注意安全性问题
由于骇客利用JavaScript进行攻击手法日新月异,当网页开发人员利用Ajax框架时,必须注意框架本身是否对某些特定手法具有防治行为。
7.让使用者知道自己身处的状况
当Ajax载入资料量大时,有时会让使用者产生错觉,不确定刚刚按下的按扭是否发生作用。因此开发人员必须设计适当的提示,让使用者了解目前程式的执行状况。
8.保持小量传输
Ajax的灵活性在于动态改变局部资料量,因此小量传输资料才能达到最高效益。如果一大张资料表都要透过DOM的操作来改变,不如就由后端程式与资料库来操作,效益更高。
9.注意易用性与内容的平衡
Ajax虽然为使用者带来浏览时的易用性,不过如果将所有内容都透过Ajax来产生,会造成搜寻引擎无法索引资料的情况。因此与内容相关的部分,需谨慎使用Ajax。
10.执行优雅降级原则
网站如果并非全面性采用Ajax技术,而只是为了局部增加互动性,这时必须考量不支援JavaScript的使用者,设法在不使用这些功能的前提下,让他们还能正常地浏览网站。
ajaxs的更多相关文章
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- Ajax-goahead局部刷新页面
软件开发最常用的方法是:C/S,B/S.如果嵌入式设备中使用Ajax,那么既可以使用C/S方式,也可以使用B/S开发上位机.最近公司的一个项目需要异步获取后台数据,使用form更新数据时会有空白卡顿不 ...
- JS、JQuery和ExtJs动态创建DOM对象
做了个简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主要是使用JavaScript.JQuery.ExtJs动态创建Table对象.动态Table数据填充.多选控制. ...
- 关于ES6
一.变量声明const和let 变量提升:在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: fu ...
- 插件 DataTable 创建列表 render参数的详解与如何传递本行数据id
1.首先 导入DataTable 的插件 2.定义表结构: HTML: <table> <thead> <tr> <th>id</th> & ...
- Ajax使用formdata异步上传文件,报错the request was rejected because no multipart boundary was found
基于jQuery的Ajaxs使用FormData上传文件要注意两个参数的设定 processData设为false 把processData设为false,让jquery不要对formData做处理, ...
- es6 中的generator函数控制流程
Generator函数跟普通函数的写法有非常大的区别: 一是,function关键字与函数名之间有一个星号: 二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出 ...
- ajax异步请求分页显示
html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
随机推荐
- 关于C#客户端引用C++ dll的问题
近期在做项目的过程中需要在Winform客户端项目引用由C++编译的DLL,于是对相关的内容进行了一些研究,有几点心得总结如下. 第一步是制作要引用的类库: (1)首先拿到C++的dll,需要注意的是 ...
- PV 和 UV IP
PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面.这里 ...
- codeforce 103B Cthulhu
B. Cthulhu time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...
- myelipse中部署路径deploy location出现错误
背景: 因java_web项目中的所有代码以及资源文件突然无法提交,在尝试过诸多方法无果后,果断删除项目重新将down下来.启动Tomcat无问题,使用原来的访问连接报错.经检查发现加载至Tomcat ...
- maven学习7 settings.xml解析
maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.home}/.m2/setting ...
- STL容器迭代器失效问题讨论
STL源码剖析---迭代器失效小结 vector迭代器的几种失效的情况: .当插入(push_back)一个元素后,end操作返回的迭代器肯定失效. .当插入(push_back)一个元素后,capa ...
- 本地测试html文件时CSS效果显示, 但是当django的服务器上运行时效果不显示
本地测试时各种效果都显示, 但是当在django服务器上测试时, 效果却不显示, 原因是我将css文件放在一个static文件夹里, 没有在settings中设置static_dir选项.将stati ...
- C语言生成程序问题
问题: 我用VS2013写好C语言程序调试运行后就在debug文件夹下生成了EXE文件,可以在本机运行.但是这个EXE文件在别的没装过VS2013的电脑上就不能直接运行,说丢失MSVCR120D.dl ...
- JavaScript语言基础-包装对象
- lombok与spring的恩怨
下面是lombok按照 Java Bean 的规范生成的 下面是spring mvc里jackson 需要的 xXxx问题还是顺势而为吧