首页 > 其他分享 >前端面试Ajxa常见问题整理

前端面试Ajxa常见问题整理

时间:2022-09-05 17:25:40浏览次数:89  
标签:异步 常见问题 xhr Ajxa 面试 eval 服务器 new

1、Ajxa的交互流程有哪几步?

(1)创建Ajxa对象

xhr = new XMLHttpRequest

(2)规定请求地址

xhr.open(method,url,async)

(3)等待服务器相应

xhr.onload

(4)向服务器发送请求

xhr.send()

3、AJXA应用和传统Web应用有什么不同?

在传统的Js中,如果想发送客户端信息到服务器,需要建立一个HTML 表单然后GET或者POST数据到服务器端。用户需要点击提交按钮来发送数据信息,然后等待服务器响应请求,页面重新加载。使用AJXA技术,就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互

2、XMLHttpRequest对象在IE和Firefox中创建方式有没有不同?

IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到,使用jquery封装好的Ajxa,会避免这些问题。

5、Ajxa如何解决浏览器缓存问题

 

(1)在Ajxa发送请求前加上 anyAjxaObj.setRequestHeader("If-Modified-Since","0")

(2)在Ajxa发送请求前加上 anyAjxaObj.setRequestHeader("Cache-Control","no-cache")

(3)在URL后面加上一个随机数: "fresh=" + Math.random();

(4)在URL后面加上时间戳:"nowtime=" + new Date().getTime()

(5)在jq Ajxa下,使用 $.AjxaSetup({cache:false}) 这样就不会保存缓存记录

 

6、简述Ajxa的优点

 

(1)无刷新更新数据(在不刷新整个页面的情况下维持与服务器通信()

(2)异步与服务器通信(使用异步的方式与服务器通信,不打断用户的操作()

(3)前端和后端负载均衡(将一些后端的工作交给前端,减少服务器与宽度的负担()

(4)界面和应用相分离(Ajxa将界面和应用分离也就是数据与呈现相分离()

 

7、简述Ajxa的缺点

 

(1)Ajxa不支持浏览器back按钮

(2)安全问题 AAjxa暴露了与服务器交互的细节

(3)对搜索引擎的支持比较弱

(4)破坏了Back与History后退按钮的正常行为等浏览器机制

 

9、json字符串与对象如何相互转换

 

把JSON格式转成对象:JSON.parse()

把对象转成标准json:JSON.stringify()

使用eval能够把字符串尽量转成js运行的代码 eval('(' + jsonstr + ')') 

eval是不安全的(可能会注入不必要的东西(),通过new Function('','return'+json)();可以解决该问题。

 

8、阐述一下异步加载JS

 

(1)异步加载的方案: 动态插入 script 标签

(2)通过 Ajxa 去获取 js 代码,然后通过 eval 执行

(3)script 标签上添加 defer 或者 async 属性

(4)创建并插入 iframe,让它异步执行 js

标签:异步,常见问题,xhr,Ajxa,面试,eval,服务器,new
From: https://www.cnblogs.com/mo3408/p/16658870.html

相关文章

  • 【Java面试】面试自閟了!工作5年的小伙伴今天面试被吊打问我,并行和并发有什么区别?
    “并行和并发有什么区别?”关于这个问题,很多工作5年以上的同学都回答不出来。或者说,自己有一定的理解,但是不知道怎么表达。大家好,我是Mic,一个工作了14年的Java程序员。......
  • 组件基础(面试)
    组件组件是可复用的Vue实例,主要用于开发中具有相同特征不同数据的模块把它集成为一个组件供重复利用 组件基础(面试)1.全局组件:组件的属性不能用大写字母组件......
  • 生命周期函数(面试)
    生命周期函数 beforeCreate()created()beforeMount()Mounted()beforeUpdate()Updated()beforeDestroy()destroyed()//......
  • RocketMQ:RocketMQ常见面试题整理
    RocketMQ常见面试题整理MQ优缺点:优点:异步;解耦;削峰。RocketMQ默认端口号:9876。RocketMQ三大功能:缺点:系统可用性降低;系统复杂性提高;存在消息(数据)一致性问题。消息可靠......
  • redis面试题2
    1、现在有个场景,一个key内容很大(几十M),一个key是热点,你如何优化?2、如何优雅的删除这个大key?3、redis的存储结构?4、实现map的方法除了哈希还有哪些?5、redis的setnx底层怎......
  • golang面试经验2
    1、make和new的区别? 宝典导航2、了解过golang的内存管理吗?宝典导航3、调用函数传入结构体时,应该传值还是指针?说出你的理由?宝典导航4、线程有几种模型?宝典导航5、Go......
  • 前端面试题每日3题——2022-09-04
    每日3题16以下代码执行后,控制台中的输出内容为?leta={n:1};letb=a;a.x=a={n:2};console.log(a.x);console.log(b.x);17以下代码执行后,控制台中......
  • redis面试题
    1、redis和mwmcached的区别2、缓存数据的处理流程是怎样的3、为什么要用redis/为什么要用缓存4、Redis常见数据结构以及使用场景5、Redis单线程模型详解6、Redis没有......
  • golang面试题2
    1、go方法值接收者和指针接收者结论:如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者      如果方法的接收者是值类......
  • 2022 年 Javascript 面试题
    2022年Javascript面试题这是我在前端面试中遇到的第二组javascript问题。可以通过这个帖子找到上一组javascript的问题[面试题2022基础javascript从一家公司转到......