易截截图软件、单文件、免安装、纯绿色、仅160KB

[JAVASCRIPT] IFRAME VS AJAX 异步提交

在ajax没出来之前,一直是用iframe实现的无刷新请求。
主要的原理是:
使用js创建一个隐藏的iframe
把要提交的表单的target属性指向1中生成的iframe
在请求的页面中回调父页面的方法
这样就实现了一个简单的“异步提交”
看起来和ajax一样的效果,那为什么还要有ajax,我们来比较下:(以下把ajax技术称为XHR,iframe实现的称为iframe)
XHR 和 iframe的区别主要在4个地方:
多线程
从上面说的原理很容易就能看出利用iframe实现的异步请求,其实也还是同步的,也就是说后台在处理这个请求的时候,前台仍然是什么都不能做的;而XHR是真正实现了异步请求,它能发起多个异步请求。
 
回退键
键盘上上的回退键的主要功能是退回到上一个历史页面。
利用iframe实现的异步请求,按回退键是可以回到上个历史页面的;而XHR不行,因为它根本没有留下任何历史的痕迹。
所以现在大多数的搜索引擎是没有利用ajax实现搜索的。
跨站访问
利用iframe实现的异步请求,请求的地址是可以是本应用外的服务;而XHR只能请求本应用的服务。
注意:只要是不用域名的都会被拒绝访问,无论是子域名访问父域名,还是父域名访问子域名
请求的状态
 想要在请求返回的同时得到请求的状态(status),iframe实现的异步请求是做不到的;而XHR可以轻而易举的做到。
 
所以让我们来总结下到底什么时候该选择哪种异步请求:
iframe实现的异步请求
除了这次的请求,没有其他并发的请求
请求的响应时间很短暂,否则用户体验会很差
跨域的请求
能返回历史页面
XHR实现的异步请求
并发的异步请求
根据准确的请求状态做事件响应


相关文档:

JavaScript 获取对象的高度和宽度详细说明

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......

龙博AJAX框架 基于web的图形控件及可视化设计

http://www.longboo.com/
分页
http://www.longboo.com/Samples/linb/widgets/TreeGrid.Paging/index.html
数据库查询工具
http://www.longboo.com/Samples/comb/OrderManagement/index.html
email工具
http://www.longboo.com/Samples/comb/OutLook/index.html
网店
http://www.longboo.com/Samples/linb/Template ......

JavaScript 未结束的字符串常量

JavaScript 未结束的字符串常量
做JavaScript的时候,发现老是出现错误:“未结束的字符串常量”.
自己找了下应该是传参数的时候,有特殊字符引起的.
网上也找了下,也有好多出现这种情况.做下总结,以方便以后查阅.
1.JAVASCRIPT引用时,使用的字符语言不一致.
比如:<script type=”text/javascrip ......

JavaScript HashTable

/**
* 自己的 HashTable
* 愿脚本神力与你同在
*/
function HashTable(){
var values = {};

/** 将值插入 HashTable 中 **/
this.put = function(key, value){
if(key in values){
return false;
}
values[key] = value;
}
/** 根据 key 返回 value **/
this.find = function(key){
ret ......

(学习笔记)JavaScript中调用函数的括号问题

 我在js中定义了一个函数:
 function closeCodeList()
{
try
{
showFistIndex = 0;
arrayBmCode = null;
if(document.all("spanCode").style.display=='')
{
var disFlag=1;
}
document.all("spanCode").style.display='none';
try{if(disFlag)oldFieldKey.focus();}catch(ex){}
}
c ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号