一个关于ajax同步的疑问

kingor2001 2010-10-08 04:01:47
我用jquery一段时间了,突然有一个关于同步处理的疑问冒出来。
jquery通过设置{async : false}来开启同步,jquery描述同步如下:同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

我的疑问是:请求完成是否包含回调函数的执行?我知道设置为同步后,系统一定要完成请求,等待返回值。但是当收到返回值后,是先执行回调函数,再执行后续的代码吗?还是随机的?

例如在post中开启同步:

$.post(url字符串, {async : false,……}, function(data){ 回调函数代码A});
后续代码B

上述代码中,“回调函数代码A”是否一定在“后续代码B”之前运行?
...全文
86 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我也遇到相似问题,我认为他是先去执行回调函数的,但是他不等回调函数响应完就执行了下一句,很郁闷
kingor2001 2010-10-09
  • 打赏
  • 举报
回复
我写程序就是想找点依据才放心。我的问题我自己测试过了。
另外,在测试中我发现同步的方式下加载复杂数据FF有bug,虽然严格按照先回调函数再后续代码的顺序执行,但是FF下有bug,当js的处理复杂的时候,例如抽象一些function并动态调用的时候,FF要非正常终止。
所以,还是应该把代码归一到回调函数里面,才能保证不同的浏览器都正常。
一家之言,大家参考。我现在写的j2ee程序非常复杂,后台我用ssh,前台jQuery。现在90%的工作是写前台。遇到很多问题,慢慢解决过程中真的很累。单位其他人都不懂这些,很多问题想拿出来探讨,却发现连自己都不知道如何表述它们。呵呵,程序员,痛并快乐着。
yinkehao 2010-10-09
  • 打赏
  • 举报
回复
这个问题自己测试一下就OK了,何必在此散分。
战斗生活 2010-10-08
  • 打赏
  • 举报
回复
有创意的疑问 。。。
kingor2001 2010-10-08
  • 打赏
  • 举报
回复
再顶一下,若无人感兴趣,就结贴得了
kingor2001 2010-10-08
  • 打赏
  • 举报
回复
我自己反复测试,同步后一定先执行回调函数,再执行后续代码B。
不知道2、3楼说的要让回调函数后执行,在同步状态下该怎么做?
路人乙e 2010-10-08
  • 打赏
  • 举报
回复
$.post(url字符串, {async : false,……}, function(data){ 回调函数代码A});
后续代码B

上述代码中,“回调函数代码A”是否一定在“后续代码B”之前运行?
===================
先执行B,后执行A
可以alert测试

要想让B在A后执行,可以在A中调用B
LastJune 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]

先执行回调函数

要是自己写ajax代码,先执行哪个完全是自己控制的
[/Quote]
同意 一般都是自己写ajax代码控制的
孟子E章 2010-10-08
  • 打赏
  • 举报
回复
先执行回调函数

要是自己写ajax代码,先执行哪个完全是自己控制的
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Android基础教程》的源代码 对应的书籍资料见: Android基础教程(你的第一本Android书) 基本信息 原书名: Hello, Android: Introducing Google's Mobile Development Platform 原出版社: Pragmatic Bookshelf 作者: (美)Ed Burnette 译者: 张波 高朝勤 杨越 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:9787115215369 上架时间:2009-11-6 出版日期:2009 年11月 开本:16开 页码:196 版次:1-1 编辑推荐   你的第一本Android书.    Pragmatic系列图书品质保证..    从这里,开始一个新的梦想... 内容简介   android是谷歌公司开发的全新开源手机平台。本书是一部关于 android开发的基础教程,采用由浅入深、循序渐进的方式讨论android。书中还结合数独游戏等实例更加形象生动地讲解了 android开发的基本流程,且每章最后都有一个 “快速阅读指南 ”,更加方便了读者的阅读。.    本书内容完整丰富,具有较强的通用性,读者都能通过本书快速学习 android开发,提高相关技能。... 作译者 作者: Ed Burnette Ed Burnette 资深软件技术专家,拥有20多年软件开发经验。他是SAS高级计算机实验室的联合创始人和高级研究员,也是www.planetandroid.com网站的创办人和ZDNet的专栏作家。除本书外,他还出版了Google Web Toolkit:Taking the Pain out of Ajax和Eclipse IDE Pocket Guide等著作。 目录 封面 -13 封底 202 扉页 -10 版权 -9 版权声明 -8 对本书的赞誉 -7 前言 -6 目录 -2 第一部分 Android简介 1 第1章 快速入门 3 1.1 安装工具 3 1.1.1 Java 5.0+ 3 1.1.2 Eclipse 4 1.1.3 Android 4 1.1.4 Eclipse插件 5 1.2 创建第一个程序 7 1.3 在模拟器上运行程序 8 1.4 在手机上运行程序 9 1.5 快速阅读指南 9 第2章 基本概念 11 2.1 Android的系统架构 11 2.1.1 Linux内核 11 2.1.2 本机库 12 2.1.3 Android运行时 13 2.1.4 应用程序框架 14 2.1.5 应用程序 15 2.2 它还活着 15 2.2.1 进程不等于应用程序 16 2.2.2 应用程序生命周期 17 2.3 构建块 19 2.3.1 活动 19 2.3.2 意图 19 2.3.3 服务 19 2.3.4 内容提供者 19 2.4 使用资源 20 2.5 安全性 20 2.6 快速阅读指南 21 第二部分 Android基础知识 23 第3章 设计用户界面 25 3.1 数独游戏简介 25 3.2 声明性设计 26 3.3 创建启动界面 27 3.4 使用替代资源 34 3.5 实现About对话框 37 3.6 应用主题 41 3.7 添加菜单 43 3.8 添加设置 45 3.9 开始新游戏 47 3.10 利用日志消息调试程序 48 3.11 利用调试器调试程序 50 3.12 退出游戏 50 3.13 快速阅读指南 50 第4章 绘制2D图形 53 4.1 Android图形基础 53 4.1.1 Color类 53 4.1.2 Paint类 54 4.1.3 Canvas类 55 4.1.4 Path类 55 4.1.5 Drawable类 56 4.2 在Sudoku程序中添加图形 58 4.2.1 开始游戏 58 4.2.2 定义Game类 58 4.2.3 定义PuzzleView类 60 4.2.4 绘制游戏盘面 61 4.2.5 绘制数字 63 4.3 处理输入 65 4.3.1 定义和更新选定区域 66 4.3.2 输入数字 68 4.3.3 增加提示 69 4.3.4 抖动屏幕 70 4.4 其他问题 71 4.4.1 创建软键盘 71 4.4.2 实现游戏逻辑 76 4.4.3 其他功能 78 4.5 更多改进 80 4.6 快速阅读指南 81 第5章 多媒体 83 5.1 播放音频 83 5.2 播放视频 88 5.3 为数独游戏配上音乐 92 5.4 快速阅读指南 94 第6章 存储本地数据 95 6.1 为数独游戏添加选项 95 6.2 继续玩前一个游戏 97 6.3 记住当前位置 99 6.4 访问内部文件系统 100 6.5 访问SD卡 101 6.6 快速阅读指南 103 第三部分 高级主题 105 第7章 互联的世界 107 7.1 通过意图实现浏览 108 7.2 利用视图打开网页 111 7.3 JavaScript与Java通信 115 7.4 使用Web服务 121 7.5 快速阅读指南 131 第8章 定位与环境感知 133 8.1 位置,位置,位置 133 8.1.1 我在哪里 135 8.1.2 更新位置 137 8.1.3 模拟说明 138 8.2 充分利用传感器 139 8.2.1 了解传感器 139 8.2.2 解析传感器的读数 140 8.2.3 模拟说明 140 8.3 地图功能 141 8.3.1 嵌入MapView 142 8.3.2 准备就绪 145 8.3.3 模拟说明 146 8.4 快速阅读指南 147 第9章 SQL实战 149 9.1 SQLite简介 149 9.2 SQL基础 150 9.2.1 DDL语句 151 9.2.2 修改语句 151 9.2.3 查询语句 151 9.3 你好,数据库 152 9.3.1 使用SQliteOpenHelper 153 9.3.2 定义主程序 155 9.3.3 添加一行 156 9.3.4 运行一个查询 157 9.3.5 显示查询结果 158 9.4 数据绑定 159 9.5 使用ContentProvider 162 9.5.1 更改主程序 164 9.5.2 添加一行 164 9.5.3 运行一个查询 165 9.6 实现ContentProvider 165 9.7 快速阅读指南 166 第10章 利用OpenGL实现3D图形 169 10.1 理解3D图形 169 10.2 OpenGL简介 170 10.3 构建一个OpenGL程序 171 10.4 管理线程 173 10.5 构建一个模型 178 10.6 光线、相机…… 181 10.7 动作 183 10.8 应用纹理 184 10.9 透明效果 187 10.10 快速阅读指南 189 第四部分 附录 191 附录A Java与Android语言及其API 193 附录B 参考书目 197 译者序   2007年11月5日,谷歌公司推出了自己的开源手机平台,正式命名为Android,该平台由操作系统、中间件、用户界面和应用软件组成。谷歌公司对外宣称这是首个为移动终端打造的真正开放和完整的移动平台。.   作为基于Linux的开源手机平台,Android包括一部手机工作所需的全部软件——操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌公司与开放手机联盟合作开发了Android,这个联盟囊括了中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家无线应用方面的领头羊。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,谷歌公司希望能建立一个标准化、开放式的移动电话软件平台,这样必将推进更好、更快的创新,为移动用户提供不可思议的丰富应用和服务。   Android作为谷歌公司企业发展战略的重要组成部分,将进一步推进“随时随地为每个人提供信息”这一企业目标的实现。作为一款多方倾力打造的平台,Android具有许多优点:实际应用程序运行速度快;开发限制少,平台开放;程序多任务性能优秀,切换迅速等。当然,它也具有系统细节不完善、电源管理不好、软件的界面不太好、支持的软件厂商还比较少等缺点。但是凭借谷歌公司的强大实力以及与开放手机联盟的通力合作,我们相信Android会越来越好,一定会成为主流的手机操作系统平台。..   本书分为3个部分共10章,最后还有两个附录。第1~3章介绍Android的基础知识和基本概念;第4~6章介绍2D图形、多媒体和存储本地数据;第7~10章介绍高级主题,包括联网、定位与环境感知、数据库和3D图形;附录介绍了Android与Java之间的差别以及参考书目。   本书由张波、高朝勤、杨越和徐红霞等翻译,在翻译过程中得到了人民邮电出版社图灵公司编辑的热心帮助,在此一并致谢。由于译者的知识水平有限,加之时间比较仓促,文中难免会出现一些疏漏,恳请广大读者给予批评指正。...    前言   Android是一款针对手机的全新开源软件工具包,它由Google和开放手机联盟(Open Handset Alliance)共同创建。Android有望在数年内遍布于数百万部手机和其他移动设备中,从而成为应用程序开发人员的主要平台。无论你是业余爱好者还是专业程序员,无论你是自己玩玩还是为了盈利,都应该了解关于Android开发的更多信息。本书将帮助你迅速入门。.   Android的特别之处   如今,市场上已经有了许多移动平台,包括Symbian、iPhone、Windows Mobile、BlackBerry、Java Mobile Edition和Linux Mobile(LiMo)等。当我向别人说起Android时,他们的第一个疑问通常是:我们为什么还需要另一个移动标准?它有何惊人之处?   虽然Android的一些特性并非首创,但它是第一个将以下特性结合在一起的环境。   基于Linux,真正开放、开源、免费的开发平台。手持设备制造商钟情于它的原因,是它们可以使用和定制该平台而不需要支付版税。开发人员喜欢它的原因,是他们知道这个平台是独立的,不受任何一家厂商的限制。   受Internet mashup思想启发的基于组件的架构。一个应用程序的组件可以在另一个应用程序中用作其他用途。你甚至可以将Android内置的组件替换为自己改进后的版本。这将在移动领域掀起新一轮的创造风潮。   众多开箱即用的内置服务。基于位置的服务使用GPS或手机发射塔三角测量法,让你可根据所处位置来定制用户体验。凭借功能全面的SQL数据库,利用强大的本地存储,可以完成偶尔连接的计算和同步操作。浏览器和地图视图可以直接嵌入在应用程序中。所有这些内置服务有助于提高功能的标准,同时降低开发成本。   应用程序生命周期的自动化管理。多层安全措施将程序彼此分离,这将使智能电话的系统稳定性达到前所未有的水平。最终用户不再需要担心哪些应用程序是活动的,也不必在运行新程序前先关闭原有的一些程序。Android针对低能耗、低内存的设备进行了优化,这种根本性的优化是之前的平台从未尝试过的。   高质量的图形和声音。将类似于Flash的光滑、无锯齿的2D矢量图形和动画与3D加速的OpenGL图形相结合,可实现各种新式的游戏和商业应用程序。Android内置了最常用的行业标准音频和视频格式的编解码器,这些格式包括H.264 (AVC)、MP3和AAC。   当前及未来各类硬件间的可移植性。所有程序都是用Java语言编写的,并且将由Android的Dalvik虚拟机执行,所以代码在ARM、x86和其他架构之间是可以移植的。Android提供了对各种输入方法的支持,比如说键盘、触摸屏和轨迹球。用户界面可以针对任何屏幕分辨率和屏幕方向进行定制。   Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。   本书读者对象   阅读本书唯一的前提条件,是具备对Java编程或类似面向对象语言(比如说C#)的基本理解,不需要拥有为移动设备开发软件的经验。实际上,如果你确实有这方面的经验,反倒应该忘记它们。Android是如此与众不同,因此最好不要带着成见来学习它。   本书内容   本书分为三部分。大致来说,本书采用由浅入深、循序渐进的方式讨论Android。   有些章使用了一个公共的示例:Android数独游戏。通过逐渐在游戏中添加特性,你将学习Android编程的许多方面,包括用户界面、多媒体和Android生命周期。..   第一部分中将首先介绍Android,内容涉及如何安装Android模拟器,如何使用IDE(Intergrated Development Environment,集成开发环境)编写第一个程序。然后,我们将介绍一些基本的概念,比如Android中的生命周期。Android中的编程方式可能与你之前采用的方式不同,因此一定要在继续学习之前掌握这些概念。   第二部分讨论Android的用户界面、二维图形、多媒体组件以及简单的数据访问。这些特性在大多数程序中都用得到。   第三部分深入探讨Android平台。这一部分介绍外部通信、基于位置的服务、内置SQLite数据库和三维图形。   本书最后提供了一个附录,其中列出了Android与Java SE(Java Standard Edition,Java标准版)之间的不同之处。 .  在线资源   本书网站http://pragprog.com/titles/eband提供了以下资源。   本书使用的所有示例程序的完整源代码;   勘误页面,列出了本书这一版中的所有错误(希望它保持空白);   论坛,在此你可以直接与作者及其他Android开发人员交流(希望论坛用户越来越多)。   读者可以在自己的应用程序中随意使用源代码。   关于“快速阅读指南”   虽然大多数作者都希望读者阅读他们书中的每一句话,但我知道你可能不想这样做。你只希望阅读能够解决手头问题的部分,而在需要解决其他问题时,再回过头来阅读另外一些内容。因此,我在书中特意注明在哪里可以找到你所关心的内容。   本书每章最后都有一个“快速阅读指南”,告诉无序阅读本书的读者接下来应该阅读哪些内容。读者还可以在其中发现一些指向相关资源(如图书和在线文档)的链接,可以了解相关主题的更多信息。   好吧,你现在想了解点什么?第1章就将指导你完成第一个Android程序。第2章回过头来介绍Android的基本概念和原理。第3章探讨用户界面,也就是大多数Android程序中最重要的部分。   致谢   我要感谢为本书成功出版做出贡献的许多人,包括审稿人Anthony Stevens、Gabor Paller、Fred Burke、Dianne Hackborn和Laurent Pontier,他们详尽审阅了本书;感谢编辑Susannah Pfalzer在我几乎要推迟交稿时提供的好建议并为我鼓足勇气。特别要感谢我的家人,感谢他们在我写作本书期间表现出来的极大耐心。...    媒体评论   “跟本书的2005版一样,我认为Louis的这本书写得非常好,信息量极其丰富而且实践性强。阅读过程中,你会觉得是在跟作者讨论问题。我喜欢这本书,还因为它有自己的观点,而非从在线图书中照搬过来……”.   —— Amazon读者评论   这本书极其出色,不仅文笔流畅、浅显易懂,内容也妙趣横生。本书既恰到好处地讲解了Android独有的特性,同时也突出了高质量编程的原则。   ——Anthony Stevens   PocketJourney创始人兼CTO,Google Android竞赛前20强   Ed Burnette的这本书虽然篇幅不长,但内容丰富,保持了Pragmatic(实用)系列图书的一贯风格。仅凭2D和3D图形方面的内容,本书就非常值得所有Android开发人员拥有。   ——Mark Murphy..   CommonsWare创始人   我还记得第一次使用Android时的情景:当时感觉它就像是一座超大型迷宫。有了这本书,入门就不会那么痛苦了。我深信,通过阅读本书,上手开发Android应用程序将是一件非常轻松愉快的事。   ——Gabor Paller   OnRelay公司高级软件架构师...
Ch01:俄罗斯方块游戏的实现 安装JDK,并正确配置环境变量(如果有疑问,可以参考任何一本java入门书籍)。打开Eclipse(可以到http://www.eclipse.org/现在官方最新版,Eclipse本身是免费软件),导入ch01下的java项目,然后保存、运行game.ErsBlocksGame类即可。 Ch02:俄罗斯方块双人对战的实现 安装JDK,并配置环境变量,打开Eclipse,导入java项目ch02,然后保存、运行game.ErsBlocksGame 类即可。 Ch03:五子棋对战游戏的实现 安装JDK、配置环境变量,打开Eclipse导入ch03项目,运行server.chessServer类启动服务器端,运行client.chessClient类启动客户端。目前只支持两个客户端进行网络对战,多个玩家还有如线程同步问题等。两个客户端可以在同一台电脑上运行。 Ch04:多媒体展示系统 –网络游鱼 安装JDK、配置环境变量,打开Eclipse导入ch04项目,运行server.FishServer类启动服务器端,运行java client.SwimFish类启动客户端。注意,同时在多台机上运行客户端才能显示出网络游鱼的效果,在同一台机上打开多个客户端窗口不能看到该效果。 Ch05:野人与传教士过河问题的实现 安装JDK、配置环境变量,打开Eclipse导入ch05项目,运行主类crossriver.CrossRiver即可启动演示程序。 Ch06:人机对战五子棋游戏的实现 安装JDK,配置环境变量,双击compile.bat 批处理文件编译项目,双击runFive.bat批处理文件可启动项目。 Ch07:蚁群算法的模拟实现 安装JDK,配置环境变量,导入ch07项目,一般情况下直接保存、运行ant.UI即可启动程序。如果不能运行,将ch07文件夹下的swt.jar加入构建路径,然后在运行中的JVM参数中加入-Djava.library.path="dll所在目录的绝对路径"即可。 也可以在命令行下直接运行该程序,假设ch07文件夹放在D盘跟目录。则在cmd下切换到ch07文件夹下,运行如下命令即可启动程序: java -cp D:\ch07\swt.jar;.; -Djava.library.path=D:\ch07 ant.UI ch08:SchoolEbay的实现 安装JDK,配置环境变量,安装ant和tomcat,并配置相应环境变量,不清楚的读者可以参见其文档。安装SQL Server 2000或更高版本,注意SQL Server 2000必须打sp3补丁,否则无法监听端口,客户端不能连接。 然后SchoolEbay\database目录下的数据库文件附加到Sql Server,具体操作是打开企业管理器,在左边的树状列表中右击数据库,在弹出的快捷菜单中选择“所有任务”|“附加数据库”命令,再选择要附加的数据库文件即可。 打开控制台(运行中输入cmd),将目录转到SchoolEbay所在目录,输入ant命令来编译打包程序(编译前请修改datasource下的Constants.java文件,将其中的username和passoword修改为SQL Server的用户名和密码)。将生成的SchoolEbay.war添加到Tomcat的webapps目录下,并启动Tomcat、启动Sql Server。访问http://localhost:8080/SchoolEbay/index.jsp,可启动本项目。 Ch09:Ajax技术在网上教学平台的应用 安装JDK,配置环境变量,安装Tomcat、SQL Server并进行相应配置。创建数据库Ajax,然后使用sql目录下的ajaxbak文件还原数据库。为Eclipse安装MyEclipse插件。使用Eclipse导入项目ch09, 在src/config.properties中配置数据库连接信息, 然后部署项目、启动tomcat。 访问http://localhost:8080/ajax即可启动本程序。 Ch10:一个简单的编译器实现 安装JDK、配置环境变量,启动Eclipse并导入ch10项目,运行主类calculator.Calculator即可。 Ch11:基于RMI分布计算实例 安装JDK、配置环境变量,编译java源文件(可以用eclipse自动编译也可以手动命令行下编译),然后命令行下运行如下命令启动服务器端: java rmi.NetS 2000 (端口号为2000)

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧