Web Worker -- Ajax

通常来讲,Ajax 和 Web Worker 都是异步执行的,彷佛没有必要在Web Worker里调用Ajax,若是存在这种状况,Ajax 须要按照一个队列里数据排列的顺序同步发送请求,若是不想页面被阻塞,这种状况下能够使用Web Worker 而且须要在Web Worker里使用Ajax。或者说非要在Web Woker里使用Ajax。javascript

在Web Worker直接使用Ajax可能会碰到一个问题,Juery在作初始化的时候依赖DOM,而Web Worker和DOM是相互独立的,因此没法直接使用Ajax。这有2种解决方案。

第一种比较简单,使用JQuery的No DOM Edition,这里是GitHub地址:

https://github.com/kpozin/jquery-nodom。能够经过这种importScripts("jquery.nodom.js")引入到当前JS文件。

第二种方法建立一个虚假的DOM对象。注意这个虚假的DOM只是容许jQuery加载下来,不能作任何DOM操做。

var document = self.document = {parentNode: null, nodeType: 9, toString: function() {return "FakeDocument"}};var window = self.window = self;var fakeElement = Object.create(document);

fakeElement.nodeType = 1;

fakeElement.toString=function() {return "FakeElement"};

fakeElement.parentNode = fakeElement.firstChild = fakeElement.lastChild = fakeElement;

fakeElement.ownerDocument = document;

document.head = document.body = fakeElement;

document.ownerDocument = document.documentElement = document;

document.getElementById = document.createElement = function() {return fakeElement;};

document.createDocumentFragment = function() {return this;};

document.getElementsByTagName = document.getElementsByClassName = function() {return [fakeElement];};

document.getAttribute = document.setAttribute = document.removeChild =

document.addEventListener = document.removeEventListener =

function() {return null;};

document.cloneNode = document.appendChild = function() {return this;};

document.appendChild = function(child) {return child;};

(想要JS文件的评论留邮箱)java

worker里的ajax,Web Worker 调用Ajax相关推荐

  1. ajax web服务调用无效 参数值,json调用web服务,报错,无参数值!

    前台:ShowDetail("英伦学院派马夹"); function ShowDetail(productId) { // make an ajax call to the web ...

  2. ajax一步调用,ajax异步调用

    ajax异步调用 内容精选 换一换 当前示例是单模型情况下推理Engine的实现代码.在多模型情况下,如果需要参考该示例,您需要注意以下几点:声明preOutBuffer变量时,不能带有static关 ...

  3. 如何查找历史线程阻塞原因_学习 Web Worker(js中的“多线程”)

    昨天部门例会,讨论开发的系统遇到的问题,遇到一个医保上传比较耗时的问题,解决方案提到了Web Worker,学习一波. 首先简单介绍一下什么是web worker.我们都知道在浏览器中javascri ...

  4. 一文了解Web Worker

    一.概述 众所周知,JavaScript最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM带来的渲染冲突问题,所以JavaScript执行器被设计成单线程.但是随着前端技术的发展,JavaSc ...

  5. 关于Web Worker你必须知道的7件事

    原文:http://www.developer.com/lang/jscript/7-things-you-need-to-know-about-web-workers.html 译者: Rock(r ...

  6. Web Worker javascript多线程编程(一)

    什么是Web Worker? web worker 是运行在后台的 JavaScript,不占用浏览器自身线程,独立于其他脚本,可以提高应用的总体性能,并且提升用户体验. 一般来说Javascript ...

  7. web worker介绍以及应用场景

    web worker介绍以及应用场景 什么是web worker ? 为什么要用web worker ? 怎么使用web worker ? 1.主线程采用new 命令,调用worker构造函数,Wor ...

  8. 主进程中发生了一个javascript错误_知道html5 Web Worker标准吗?能实现JavaScript的多线程?

    js为什么是单线程? 主要是因为最开始javascript是单纯的服务于浏览器的一种脚步语言(那时候没有nodejs).浏览器是为了渲染网页,通过dom与用户交互,如果一个线程需要给dom执行clic ...

  9. Web Worker详解

    Web Worker 1.Web Worker概述 最近在看一些关于Web Worker的数据和视频,把以下重点分享给大家 ( 推荐有基础的小伙伴收藏 ) 客户端JavaScript其中一个基本的特性 ...

最新文章

  1. 拖拉机也将自动驾驶,日本劳动力短缺大力发展无人农业
  2. 从陈坤微信号说起:微信公众平台开发者的江湖
  3. python在线课程-开始网上在线深度学习python课程
  4. java集合类学习笔记之LinkedHashMap
  5. 【转】每天一个linux命令(50):crontab命令
  6. JavaScript 使用变量访问对象属性
  7. 宝塔添加多占点_宝塔面板启用WordPress多站点子域名、子目录
  8. Docker监控方案(TIG)的研究与实践之Influxdb
  9. 前端学习(891):bom导读
  10. python 文件读写(追加、覆盖)
  11. WPFのDecorator 、Adorner和AdornerDecorator
  12. 19.Linux-USB总线驱动分析
  13. 笔记31 笨办法学python练习39可爱的词典
  14. Alexa 智能音箱开发智能家居
  15. Windows10 pycharm 前进后退快捷键配置
  16. unity 使用像素实现墙面子弹留孔效果(给已有贴图模型叠加贴图)
  17. 【云原生】第二篇--容器管理工具 Docker生态架构及部署
  18. kubectl logs 常用命令
  19. 免费全平台直播推流软件OBS Studio应用
  20. 牛客网 15029 (栈)

热门文章

  1. 聊聊职能型组织的优缺点
  2. 【论文阅读】基于强化学习的上下文感知的自适应路由变异方案
  3. golang操作excel表格---写到excel数据【可以使用】
  4. 10种方法教你管理销售线索!(下)
  5. 配对样本 显著性检验 p值 willcox test 批量检验 批量ssgsea分析
  6. 基于Spring Cloud的微服务架构脚手架实践
  7. supOS工业操作系统之图表库练习
  8. grom err整理
  9. GROM查询操作总结
  10. R语言实现AHP层次分析法