当前位置: 首页 > 面试题库 >

AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?

弘焕
2023-03-14
本文向大家介绍AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?相关面试题,主要包含被问及AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?时的应答技巧和注意事项,需要的朋友参考一下

答:AJAX解决的问题就是“无刷新更新页面”,用传统的HTML表单方式进行页面的更新时,每次都要将请求提交到服务器,服务器返回后再重绘界面,这样界面就会经历:提交→变白→重新显示这样一个过程,用户体验非常差,使用AJAX则不会导致页面重新提交、刷新。

AJAX最本质的实现是在Javascript中使用XMLHttpRequest进行Http的请求,开发中通常使用UpdatePanel、JQuery等方式简化AJAX的开发,UpdatePanel的方式实现AJAX最简单,但是数据通讯量比较大,因为要来回传整个ViewState,而且不灵活,对于复杂的需求则可以使用JQuery提供的ajax功能。

UpdatePanel的内部原理。

AJAX最重要的问题是无法跨域请求(www.rupeng.com →so.rupeng.com),也就是无法在页面中向和当前域名不同的页面发送请求,可以使用在当前页面所在的域的服务端做代理页面的方式解决。

在如鹏网项目中发帖的时候显示相关帖的功能、站内搜索项目中显示搜索Suggestion、数据采集项目中都用到了AJAX。

常考:不用任何框架编写一个AJAX程序。XHR:XmlHttpRequest。背也要背下来!

如果面试的时候谈AJAX谈到UpdatePanel的时候,就是NB的时候!!!先侃UpdatePanel的原理!引出为什么Dom操作的动态效果在用UpdatePanel提交刷新以后没有了,以及CKEditor被套在UpdatePanel中提交以后也变成了textarea,为什么把Fileupload放到Updatepanel中无法实现无刷新上传。说成是公司内部的一个菜鸟用UpdatePanel遇到这样问题,由于我懂XHR、UpdatePanel的原理,所以轻松解决!UpdatePanel生成的上万行JS脚本,不适合于互联网项目。“WebForm怎么可能把开发人员编程傻子呢!不明白原理苦命呀!还是MVC好呀,MVC。。。。。。。”

 类似资料:
  • 问题内容: 我认为解决此问题的最佳方法就是粘贴我的代码: 如果我先点击 编辑按钮 和比 确认编辑 ,我试图获得(作为结果)的页面标签 FINALLY我在这里 不幸的是,这并不发生。我单击“ 编辑”按钮 ,然后单击“ 确认编辑” ,则什么也没有发生。 我怎么了 干杯 用新版本更新 问题答案: 好吧,那变得复杂了。是否将调用该操作还取决于组件或其父项之一的属性的结果。由于Bean在请求范围内,因此默认

  • 问题内容: 为什么决定使用 XMLHTTPRequest 进行XML调用不应该跨域边界进行调用?您可以检索JavaScript,图像,CSS,iframe以及我可以想到的来自其他域的几乎所有其他内容。为什么不允许Ajax HTTP请求跨越域边界?考虑到我可以看到它被滥用的唯一方法,这似乎是一个奇怪的限制,那就是如果有人要向页面中注入Javascript。但是,在这种情况下,您只需在文档中添加一个i

  • 问题内容: 我上周才刚开始使用jQuery,到目前为止,我已经使用ajax制作了一些基本系统,例如基本jQuery CRUD和简单的聊天系统,而没有参考其他人的工作,因为我决定测试一下自己在jQuery中可以单独完成系统的程度还没有JSON和XML)。 但是,当我决定查看他人的工作时(希望在那里获得/学习良好的实践和代码),许多或几乎每个处理ajax的程序都包含一些JSON。因此,我决定专门研究和

  • 问题内容: 我网站上的链接不起作用,我得到了在锚点上使用的解决方案,而没有得到真正的解释。有人能帮我吗? 问题答案: 是jQuery Mobile的功能。默认情况下,JQM将尝试通过ajax加载页面,以改善用户体验和转换。如果设置,则JQM将执行普通的页面请求,而不使用ajax。这可以用于表单以及链接。 从文档: 这告诉框架重新加载整个页面以清除URL中的Ajax哈希 如果要禁用所有链接上的aja

  • 问题内容: 有任何想法吗?为什么节点说“文件名未定义”?谢谢。合同,政策和发票功能不使用任何数据进行解析,仅使用resolve()。 问题答案: 首先,您不能写: (如果该函数返回 另一个 函数充当处理程序,则可以使用) 您必须写: 要么: 或者,如果一个函数应该处理其他函数的结果,则可能是这样: 作为参数传递给您的是函数,而不是调用函数的结果(在您的示例中这可能是一个承诺)。 我不知道这是否是您

  • 正在启动lib\main。在调试模式下为x86构建的Android SDK上的dart。。。正在运行Gradle任务“assembleDebug”。。。 失败:生成失败,出现异常。 错误:任务“:app:compileFlutterBuildDebug”的执行失败 JAVAlang.NullPointerException(无错误消息) > 尝试:使用--stacktrace选项运行以获取堆栈跟踪