【问题标题】:How can I make an ajax call in a web worker?如何在网络工作者中进行 ajax 调用?
【发布时间】:2014-06-08 08:28:36
【问题描述】:

我需要从 javascript 对 REST/JSON 服务器进行 ajax 调用。既可以将数据下拉到浏览器,也可以将数据向上推送。在网络工作者中。

因为这是在 web worker 中无法使用 JQuery (details here)。 JQuery-hive 是一个用于管理网络工作者的库,而不是用于在网络工作者中使用 JQuery(据我从文档中得知)。所以 JQuery 不是一个选项。

在有限的 web worker 环境下,如何进行 ajax 调用?

【问题讨论】:

  • 与其他不使用 jQuery 的人一样makes Ajax calls
  • @Quentin 谢谢。如果您将其写为答案,我很乐意将其标记为答案。

标签: javascript ajax browser web-worker


【解决方案1】:

这里有一点需要考虑:jQuery 是一个抽象工具:它不能做任何基本 JS 做不到的事情。使用纯 JS 可能更容易,但可能更难。但这并不神奇。它只是提供了一个抽象接口,统一了不同浏览器中javascript引擎的不同实现。

在这种情况下,jQuery 是 XMLHttpRequest 的抽象。您可以在每个主要的 javascript 网站上找到有关如何使用此功能的指南:w3schools.comMDNMSDN、... 还有many questions on stack overflow 解释了如何执行此操作。

有点离题,但这也是我建议人们学习或开发 javascript 以首先学习如何手动完成这些事情的原因之一,并且只有在他们了解了基础知识后才切换到库。库非常适合抽象,但如果您还没有了解什么是抽象的,那么一旦您最终陷入无法访问抽象的情况,就会遇到麻烦。

【讨论】:

  • 谢谢。我曾经同意首先学习基础知识,其次是图书馆。然而,现在图书馆已经抽象了很多东西,到处学习基础知识真的需要很长时间。
  • 当我谈论基础知识时,我并不是在谈论整个语言。函数和变量的声明和执行、对象操作、从其他文件加载资源、条件评估和迭代。这些是我认为你应该能够在没有库的情况下做到的基础知识,尤其是在 JS 中。
  • 我已经完成了这项工作(再次感谢),这让我想到了一个问题,为什么使用 JQuery 而不是 XMLHttpRequest? JQuery 拆分了 done/fail/progress 事件,而不是一个 onreadystatechange 事件,但这并不足以成为我使用库的理由。
  • JQuery 还抽象了为不同浏览器创建和准备 XMLHttpRequest 的过程。例如,旧版本的 IE 需要一个 activeXObject。使用 JQuery 的主要原因是,您无需为 Chrome、Firefox、IE 和旧版本的 IE 以 4 种不同的方式编写相同的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多