chrome扩展程序中的多个Web服务调用

我正在使用JQuery 2.2.0编写我的第一个JavaScript Chrome扩展程序,该扩展程序基本上采用当前URL,并轮询一些不同的Web服务以查看它们是否具有URL记录。如果存在,则在DOM中添加文本链接。这是简化的工作版本:

// Does the provided URL exist?
function url_exists(url) {
    var h = new XMLHttpRequest();
    h.open('HEAD', url, false);
    h.send();
    return h.status!=404;
}

// Display a link to the database record URL in the DOM
function display_database_link(url) {
  $('body').prepend('<a href="' + url + '">Link</a>');
}


// Get the current URL
var url             = window.location.href;
var database_number = 0;

// See if this URL exists in one of our databases via the API

// Does the URL exist in database 1?
if (url_exists("https://api.database1.com/urls/" + url)) {
  database_number = 1;
}

// Does the URL exist in database 2?
else if (url_exists("https://api.database2.com/urls/" + url)) {
  database_number = 2;
}

if (database_number > 0) {
  display_database_link("https://api.database" +  database_number + ".com/urls/" + url))
}

我所拥有的有效,但是我想知道是否:

  1. 有一种方法可以一次多次调用url_exists,并且

  2. 如果有一种异步的方法。

如果有人可以通过指向相关文档或示例的链接进行回复,我将不胜感激!

亚伯拉罕

es2015有几个很棒的功能,这些功能将使它变得简单易用:fetchpromises您必须进行一些调整,但是这样的方法应该可以工作。

// Array of API endpoints to to make requests to
let url = window.location.href;
let database_urls = ["https://api.database1.com/urls/", "https://api.database2.com/urls/"];

// Promise.all will take an array of promises and perform all of them, and `then` process all results at the end
Promise.all(database_urls.map(database_url =>
  // Make an HTTP request to the endpoint, and `then` get the status code from the response
  fetch(database_url + url).then(response => response.status)
// Once `all` promises are resolved, `then` iterate over the resulting statuses
)).then(statuses => {
  // Reduce `statuses` to a count of how many are not 404s
  let existCount = statuses.reduce((prev, curr) => {return curr == 404 ? prev : prev + 1}, 0);
  // Call method to display link if existsCount is > 0
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

chrome扩展程序中的多个Web服务调用

来自分类Dev

从网站调用Chrome扩展程序中的函数

来自分类Dev

如何从常规网站调用Chrome扩展程序中定义的功能?

来自分类Dev

chrome扩展程序中的AJAX调用未成功

来自分类Dev

从注入的脚本中获取Chrome扩展程序调用函数

来自分类Dev

Chrome 扩展程序中的 Firebase UI:从未调用过 signInSuccess

来自分类Dev

Chrome扩展程序弹出表单中的多个提交按钮

来自分类Dev

删除Chrome中的多个扩展

来自分类Dev

在Flex应用程序中无法从Java调用Web服务

来自分类Dev

从Chrome扩展程序调用Google Apps脚本

来自分类Dev

Chrome扩展程序Ajax调用返回403

来自分类Dev

如何从Chrome扩展程序调用OnBlur方法

来自分类Dev

Chrome扩展程序引用/调用内容脚本中的其他脚本功能

来自分类Dev

如何调用在Chrome扩展程序的OPTION.html页面中声明的元素?

来自分类Dev

在Chrome扩展程序中动态创建的元素上调用jQuery方法

来自分类Dev

一次多个Web服务调用

来自分类Dev

检查多个异步Web服务调用的结果

来自分类Dev

从iOS应用程序调用Web服务

来自分类Dev

如何在Blazor服务器端Web应用程序中扩展IdentityUser

来自分类Dev

在Chrome扩展程序中,调用回调传递给chrome.tabs.remove()时,为什么关闭的标签仍然存在?

来自分类Dev

如何在SSIS中调用具有多个输入(在脚本组件中)的Web服务?

来自分类Dev

在Chrome扩展程序中打开(导入)文件

来自分类Dev

在Chrome扩展程序中实现Facebook登录

来自分类Dev

搜索结果中的Chrome扩展程序图标

来自分类Dev

在Chrome扩展程序中显示通知

来自分类Dev

保护在Chrome扩展程序中公开的API

来自分类Dev

Chrome扩展程序中的消息传递示例

来自分类Dev

Chrome扩展程序后台脚本中的AngularJS

来自分类Dev

在Chrome扩展程序中停止内容脚本

Related 相关文章

  1. 1

    chrome扩展程序中的多个Web服务调用

  2. 2

    从网站调用Chrome扩展程序中的函数

  3. 3

    如何从常规网站调用Chrome扩展程序中定义的功能?

  4. 4

    chrome扩展程序中的AJAX调用未成功

  5. 5

    从注入的脚本中获取Chrome扩展程序调用函数

  6. 6

    Chrome 扩展程序中的 Firebase UI:从未调用过 signInSuccess

  7. 7

    Chrome扩展程序弹出表单中的多个提交按钮

  8. 8

    删除Chrome中的多个扩展

  9. 9

    在Flex应用程序中无法从Java调用Web服务

  10. 10

    从Chrome扩展程序调用Google Apps脚本

  11. 11

    Chrome扩展程序Ajax调用返回403

  12. 12

    如何从Chrome扩展程序调用OnBlur方法

  13. 13

    Chrome扩展程序引用/调用内容脚本中的其他脚本功能

  14. 14

    如何调用在Chrome扩展程序的OPTION.html页面中声明的元素?

  15. 15

    在Chrome扩展程序中动态创建的元素上调用jQuery方法

  16. 16

    一次多个Web服务调用

  17. 17

    检查多个异步Web服务调用的结果

  18. 18

    从iOS应用程序调用Web服务

  19. 19

    如何在Blazor服务器端Web应用程序中扩展IdentityUser

  20. 20

    在Chrome扩展程序中,调用回调传递给chrome.tabs.remove()时,为什么关闭的标签仍然存在?

  21. 21

    如何在SSIS中调用具有多个输入(在脚本组件中)的Web服务?

  22. 22

    在Chrome扩展程序中打开(导入)文件

  23. 23

    在Chrome扩展程序中实现Facebook登录

  24. 24

    搜索结果中的Chrome扩展程序图标

  25. 25

    在Chrome扩展程序中显示通知

  26. 26

    保护在Chrome扩展程序中公开的API

  27. 27

    Chrome扩展程序中的消息传递示例

  28. 28

    Chrome扩展程序后台脚本中的AngularJS

  29. 29

    在Chrome扩展程序中停止内容脚本

热门标签

归档