标签‘ajax’

iOS下AJAX请求遇HTTP状态码401持续pending问题解决

最近项目上遇到这样一个问题,iOS 系统,在 AJAX 请求发出后,因授权原因返回 401,发现一直 pending,查了很久发现 SO 上有类似提问。

主要原因是,当 AJAX 返回带 WWW-Authenticate 信息的 401 响应时,Web 容器 (浏览器或 WebView )会尝试弹出弹出框让你输入认证信息。但是在 iOS 平台,系统的某些默认行为会导致请求没有被发送到应用层。因此,AJAX请求会处于 pending 状态。

因为项目并不是基于 HTTP 认证的,而服务端采用的 IIS,默认开启了相关配置,最终为解决问题,选择了删除响应头中所有的 WWW-Authenticate 信息。 查看更多...

异步输出网页列表查看详情后返回定位

最近有个需求,移动端网站,列表上拉加载,点击详情后返回,每次都固定返回到顶部,感觉这样不够人性化,希望固定到进列表前的页面,于是简单实现了一下。

这里有两个问题

1、数据都是异步的

2、只有返回的时候定位(刷新正常回顶部)

简单的实现思路及主要代码

为了方便二次加载,异步数据每次缓存到本地,同时拦截页面所有链接,在即将跳转的时候记录当前页面或者滚动元素的scrollTop值,下次进页面判断是否返回进来的,如果是直接进来或者刷新,则重新请求,如果为返回,则直接使用已缓存数据迅速加载后使用已缓存的scrollTop值定位到进详情页之前的位置,同时清除值,即scrollTop值的缓存仅一次有效。 查看更多...

简易NodeJS、PHP跨域代理[Restful请求]

最近测试一些东西,需要跨域访问Restful接口,因为是测试,不可能改变接口形式,所以jsonp方案直接Pass。

本地测试时简单写了几行NodeJS代码,对特定路径下的请求进行转发后回传,因为使用WebStorm开发,NodeJS不可以和WebStorm内置服务器使用相同端口,虽然可以通过配置本地服务器,完全将NodeJS作为服务器,但那样需要解决静态资源的输出,写东西过多,偏离初衷,这里不再赘述。

不过如果你是做前后端完全分离的项目,大可以找个开源的Web框架来用,比如express等,这里不多介绍。

总之但思路就这样了,可能不太完善,代码如下: 查看更多...

Extjs 4.2 Grid增删改及后台交互(Java)

上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录。苦于抽不出时间,一直拖到现在。不得不说,Extjs确实很强大,新版的Neptune风格也很入我眼,但毕竟没怎么用过,第一次用,也不敢上来就搞什么自定义组件,也就纯粹的model+store+panel声明式创建表格了。

抛开分页,抛开排序,今天只简单讲一下最近使用中总结出来的rest形式增删改查数据的方式。发现这种方式挺不错的,故而分享下。
代码Example如下:
定义Model

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [{name: 'id',
        type: 'int',
        useNull: true
    }, 'email', 'first', 'last'],
    validations: [{ type: 'length',
        field: 'email',
        min: 1
    }, {type: 'length',
        field: 'first',
        min: 1
    }, {type: 'length',
        field: 'last',
        min: 1
    }]
});

查看更多...

Ajax应用事件处理及浏览器内存泄漏实践

事件处理是 Ajax 应用中的重要组成部分,也是应用动态变化的源动力。本文详细介绍了浏览器中的事件处理相关的内容,包括注册事件监听器、事件发生之后的传播机制、编写事件监听器等,还介绍了 Dojo 对事件处理提供的支持。最后介绍了与浏览器内存泄露和性能相关的最佳实践。

浏览器中的事件是 Ajax 应用动态变化的源动力。用户通过输入设备(主要是键盘和鼠标)与应用进行互动。对于用户不同的动作,如点击鼠标左键、右键、或是按下键盘上的回车键,浏览器会产生与之对应的事件。这些事件按照一定的规则在当前文档树中传播。应用可以根据自己的需要,对特定的事件进行处理,以响应用户的动作。这种事件驱动的方式,不仅在 Web 应用中被使用,在桌面应用中也广泛流行。本文详细介绍了浏览器中事件处理的各个方面,包括事件监听器的注册、事件的传播、事件处理和其它高级话题。本文还介绍了如何使用 Dojo 提供的 dojo.connect()。本文中使用的 Dojo 版本是 1.4。下面首先介绍如何注册事件监听器。

注册事件监听器

注册事件监听器的目的是在事件发生的时候添加相应的处理逻辑。浏览器中的事件处理采用经典的观察者(Observer)设计模式。对于可能产生的各种事件,Ajax 应用通过脚本在节点上关注自己感兴趣的事件,并添加相应的处理逻辑。当相应的事件发生并传播到监听器注册的节点时,处理逻辑会被调用。 查看更多...

细谈可刷新Ajax无刷新应用的构建及原理

想必看标题就有一大部分朋友懵了,其实这个标题完全没有错,我要说的就是目前流行的ajax应用的构建。众所周知,ajax应用的核心就是使用javascript异步调用XmlHttp发送请求并接收数据,然后在前台进行局部刷新,从而达到无刷新改变页面内容的效果。但在很多场合,如果使用大量的ajax,虽然可以使应用使用体验更佳,却避免不了用户因为各种因素而进行的全局刷新。

举个例子,有个文章管理页面,完全是由ajax实现的,在默认情况下显示文章列表,点击某按钮或链接的情况下异步加载了文章添加的界面,此时如果用户刷新了页面,先不说已经写下的内容,页面是不是又回到了列表状态呢?没错,这就是我要说的问题。

其实之前就有过此类困扰,后来为了兼顾各方面灵活性,就采用了多页面的方式,部分地方还使用了iframe。最近又做项目使用了大量ajax,同理,遇到同样的问题。 查看更多...

用Dojo实现XHR、跨域、及其他Ajax请求

工作之余,收集了dojo的入门知识,以便以后查用。下面是用Dojo实现XHR、跨域、及其他Ajax请求的介绍,希望有用。

在任何浏览器上方便地实现Ajax请求是每一个Ajax框架的初衷。Dojo在这方面无疑提供了非常丰富的支持。除了XMLHttpRequest之外,动态script、iframe、RPC也应有尽有,并且接口统一,使用方便,大多数情况下都只需要一句话就能达到目的,从而免除重复造轮子的麻烦。而且,Dojo一贯追求的概念完整性也在这里有所体现,换句话说,在使用Dojo的Ajax工具的过程中不会感到任何的不自然,相反更容易有触类旁通的感觉,因为API的模式是统一的,而且这里涉及到的某些概念(如Deferred对象)也贯穿在整个Dojo之中。

Dojo的XHR函数

Dojo的XMLHttpRequest函数就叫dojo.xhr,除了把自己取名美元符号之外,这好像是最直接的办法了。它定义在Dojo基本库里,所以不需要额外的require就能使用。它可以实现任何同域内的http请求。不过更常用的是dojo.xhrGet和dojo.xhrPost,它们只不过是对dojo.xhr函数的简单封装;当然根据REST风格,还有dojo.xhrPut和dojo.xhrDelete。 查看更多...

GWT框架下进行Ajax开发基础实例

从事Web开发的人员一般都接触过,在我看来,Ajax的立意很好,我比较感兴趣的就是Ajax在某些应用场合可以有效降低服务器负载,可以局部刷新,所以可以说Javascript+XMLhttp是Web开发中不可或缺的好东西。Ajax虽好,但它这要求开发团队能熟练使用Javascript,这是一个障碍。目前状况是,团队的成员明显对深入学习Javascript的意愿不高。因此,各类简化了的Javascript框架出现了。

众所周知,Google产品设计面非常广,这里要介绍的就是Google发布的面向Java开发人员的Ajax快速开发工具——GWT(Google Web Toolkit),Ajax技术是当前开发Web应用的非常热门的技术,也是Web 2.0的一个重要的组成部分。然而如果用传统的方式Javascript进行Ajax开发的话,就会使得应用程序非常难以进行调试,从而降低了生产效率。

Google最近推出的GWT有望为我们解决这个难题,GWT是一个开发Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码。 查看更多...

几种常用ajax框架分析介绍

网上搜集整理了几种常见ajax框架,分别列出来,给想学的朋友做个参考。(排名不分前后)

1. APS.NET的官方解决方案
ASP.NET AJAX
网址:ajax.asp.net

ASP.NET AJAX是微软.NET平台上的解决方案,提供包括服务器端与客户端所需的AJAX技术与JavaScript整合机制。

通过下载、安装ASP.NET AJAX到Visual Studio当中,即可使用预设的控制项,开发出一些视觉特效与非同步传输的应用。

另外,ASP.NET AJAX也提供控制项的Toolkit,包含开发人员想自行开发AJAX应用时所需的基底类别与专案范本。 查看更多...

博客添加了嵌套评论Ajax提交功能

今天,又想起了一个问题,记得年前的时候有朋友访问我的博客,在评论后说评论没有ajax效果,导致了浏览器假死,我说暂时不会添加,因为自己当时没接触过ajax。最近对ajax有了些接触,不过自己还是没能力去修改主题,让它支持ajax评论提交。

但是,我至少知道了,需要实现这个功能不必要对主题进行重新构架,这样来说,增加一段代码也许就能实现了。至此,问题已经有了新的解决方法,我们有万能的百度,随便一搜,有很多方法。 查看更多...