【问题标题】:jQuery on electron main process电子主进程上的jQuery
【发布时间】:2018-04-03 17:53:25
【问题描述】:

如何在电子主进程中使用 jQuery?

似乎我找到的每个示例都是针对渲染器进程的。

例如,我想创建一个供主进程使用的实用程序,它将使用 get 从 api 获取数据。

然后使用$.get 会产生get is not a function 的错误。

谢谢。

【问题讨论】:

    标签: javascript jquery get electron


    【解决方案1】:

    jQuery 是一个用于浏览器的 JS 库,例如 DOM 操作等。你不应该在主进程中使用它,因为主进程在 NodeJS 中运行。

    在不了解您的应用程序的情况下很难提出解决方案。如果您在主进程中需要来自 AJAX 请求的数据,您可以使用NodeJS https 包。来自Twilio blog的示例:

    const https = require('https');
    
    https.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', (resp) => {
      let data = '';
    
      // A chunk of data has been recieved.
      resp.on('data', (chunk) => {
        data += chunk;
      });
    
      // The whole response has been received. Print out the result.
      resp.on('end', () => {
        console.log(JSON.parse(data).explanation);
      });
    
    }).on("error", (err) => {
      console.log("Error: " + err.message);
    });
    

    编辑: 正如@Hans-Koch 提到的,您可能不应该在渲染器进程中使用 jQuery,因为它的主要目的之一是规范化用于 DOM 操作、AJAX 等的 API,而在 Electron 中,您只需要支持 Chromium。如果你想发出 AJAX 请求,你可以使用 XMLHttpRequest 或一些包装它的 npm 包,例如 xhr

    【讨论】:

    • 即使在渲染过程中,jQuery 也是错误的方法,它会进行规范化的 DOM 操作,如果只有一个目标浏览器(铬)则没有必要规范化
    • @HansKoch 我没明白。您是什么意思“如果只有一个目标浏览器,就没有必要进行规范化”?何关于我将使用request 获取数据,然后使用 jquery 更新页面的一部分?或者还有其他方法吗?谢谢。
    • Hans 的意思是 jQuery “规范化”了浏览器的界面。因此,调用 IE10 看起来与调用 Chrome、Safari 或 Firefox 时相同。在 Electron 中,我们唯一的目标是 Chromium,因此不需要标准化。 request 应该可以正常工作:)
    • 正是这样:)
    • 如何使用https模块获取非https URL?
    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 2017-10-25
    • 2018-02-08
    • 2017-07-01
    • 2020-06-21
    • 2017-08-28
    • 2016-02-24
    • 2021-11-11
    相关资源
    最近更新 更多