【问题标题】:How to make a network call to an endpoint each time a page loads每次页面加载时如何对端点进行网络调用
【发布时间】:2021-02-27 23:33:13
【问题描述】:

我正在 (http://127.0.0.1:8080) 的本地服务器上运行网站。

我在 api/track 有一个名为 track 的文件,其中 api 只是一个文件夹。

我有一个文件名为 main.js,位于 js/main.js。

最后,我的 index.html 文件与 /api 和 /js 位于同一级别。

我想在每次页面 index.html 加载时对该端点 (api/track) 进行网络调用。

另外,我想包含一个时间戳 ts(自 EPOCH 以来的毫秒数)。 url 的一个示例是 /api/track?ts=1594280202864。我不需要使用此调用的结果。

这是我所做的,但我不确定它是否在做我想要的,尤其是网络调用部分。有人可以帮忙吗?谢谢

const update = () => {
    var dt = new Date();
    document.getElementById("date").innerHTML = dt;
    
    //date in millisecodn since EPOCH
    var dtInMilSec = dt.getTime();

    fetch('/api/track/dtMilSec')
        .then(response => response.json())
        .then(data => {
            console.log(data)
        });
};
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>The Date</title>
    <link href="style/main.css" rel="stylesheet" />
  </head>
  <body onload="update()">
    <h1>What's today's date?</h1>
    <p>Today is: <span id="date"></span></p>
  <script src="js/main.js"></script>
  </body>

【问题讨论】:

  • 您必须像这样 fetch('/api/track?ts='+dtInMilSec) 将变量的内容添加到 url

标签: javascript xmlhttprequest fetch-api


【解决方案1】:

https://stackoverflow.com/a/25984032/14649968

也许可以在相关线程上查看此答案,并从 main.js 脚本中的 DOMContentLoaded 的事件侦听器中调用您的 update() 函数,而不是从 html 本身的 onload attr 调用它?

document.addEventListener('DOMContentLoaded', () =&gt; update(), false);

【讨论】:

  • 谢谢你,吉姆。这很棒。我才刚刚开始,我很喜欢这个!
【解决方案2】:

似乎您希望获取 URL 类似于

fetch('/api/track?ts=' + dtInMilSec)

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 2017-01-20
    • 2021-11-20
    • 2021-06-10
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2012-12-18
    相关资源
    最近更新 更多