worker里的ajax,Web Worker 调用Ajax
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相关推荐
- ajax web服务调用无效 参数值,json调用web服务,报错,无参数值!
前台:ShowDetail("英伦学院派马夹"); function ShowDetail(productId) { // make an ajax call to the web ...
- ajax一步调用,ajax异步调用
ajax异步调用 内容精选 换一换 当前示例是单模型情况下推理Engine的实现代码.在多模型情况下,如果需要参考该示例,您需要注意以下几点:声明preOutBuffer变量时,不能带有static关 ...
- 如何查找历史线程阻塞原因_学习 Web Worker(js中的“多线程”)
昨天部门例会,讨论开发的系统遇到的问题,遇到一个医保上传比较耗时的问题,解决方案提到了Web Worker,学习一波. 首先简单介绍一下什么是web worker.我们都知道在浏览器中javascri ...
- 一文了解Web Worker
一.概述 众所周知,JavaScript最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM带来的渲染冲突问题,所以JavaScript执行器被设计成单线程.但是随着前端技术的发展,JavaSc ...
- 关于Web Worker你必须知道的7件事
原文:http://www.developer.com/lang/jscript/7-things-you-need-to-know-about-web-workers.html 译者: Rock(r ...
- Web Worker javascript多线程编程(一)
什么是Web Worker? web worker 是运行在后台的 JavaScript,不占用浏览器自身线程,独立于其他脚本,可以提高应用的总体性能,并且提升用户体验. 一般来说Javascript ...
- web worker介绍以及应用场景
web worker介绍以及应用场景 什么是web worker ? 为什么要用web worker ? 怎么使用web worker ? 1.主线程采用new 命令,调用worker构造函数,Wor ...
- 主进程中发生了一个javascript错误_知道html5 Web Worker标准吗?能实现JavaScript的多线程?
js为什么是单线程? 主要是因为最开始javascript是单纯的服务于浏览器的一种脚步语言(那时候没有nodejs).浏览器是为了渲染网页,通过dom与用户交互,如果一个线程需要给dom执行clic ...
- Web Worker详解
Web Worker 1.Web Worker概述 最近在看一些关于Web Worker的数据和视频,把以下重点分享给大家 ( 推荐有基础的小伙伴收藏 ) 客户端JavaScript其中一个基本的特性 ...
最新文章
- 拖拉机也将自动驾驶,日本劳动力短缺大力发展无人农业
- 从陈坤微信号说起:微信公众平台开发者的江湖
- python在线课程-开始网上在线深度学习python课程
- java集合类学习笔记之LinkedHashMap
- 【转】每天一个linux命令(50):crontab命令
- JavaScript 使用变量访问对象属性
- 宝塔添加多占点_宝塔面板启用WordPress多站点子域名、子目录
- Docker监控方案(TIG)的研究与实践之Influxdb
- 前端学习(891):bom导读
- python 文件读写(追加、覆盖)
- WPFのDecorator 、Adorner和AdornerDecorator
- 19.Linux-USB总线驱动分析
- 笔记31 笨办法学python练习39可爱的词典
- Alexa 智能音箱开发智能家居
- Windows10 pycharm 前进后退快捷键配置
- unity 使用像素实现墙面子弹留孔效果(给已有贴图模型叠加贴图)
- 【云原生】第二篇--容器管理工具 Docker生态架构及部署
- kubectl logs 常用命令
- 免费全平台直播推流软件OBS Studio应用
- 牛客网 15029 (栈)