JS 没有响应更新的 txt 文件

目标:

  1. 后台循环会不断读取并打印文件(word.txt)

  2. 按下其中一个按钮将覆盖其中的值word.txt

  3. 然后后台循环将读取此更改并打印

怎么了:

  1. 后台循环不断读取并打印文件(word.txt)

  2. 按下其中一个按钮会覆盖word.txt 但....中的值。 3. 在我继续在不同浏览器中访问“word.txt”文件并刷新页面之前,此更改不会反映在 JS 中。完成后,JS 开始识别它。

有任何想法吗?抱歉,该代码段无法正常php工作

var instanse = false;

var state;

var mes;

var file;


console.log('update.js loaded');


function triggerUpdate(){

    console.log('update.js is triggered');

    updateChat();

}


//Background Loop

function updateChat(){

            var file = 'word.txt';

            var rawFile = new XMLHttpRequest();

            rawFile.open("GET", file, false);

            rawFile.onreadystatechange = function ()

            {

                if(rawFile.readyState === 4)

                {

                    if(rawFile.status === 200 || rawFile.status == 0)

                    {

                        var allText = rawFile.responseText;

                        console.log(allText);

                    }

                }

            }

            rawFile.send(null);

    setTimeout(updateChat, 1500);

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Random Word Generator</title>


    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

    <script type="text/javascript"></script>

    <script language="javascript" src="update.js" type="text/javascript"></script>

</head>

<body onload="triggerUpdate();">


    <form action="" method="post">

    <input type="submit" name="word"

                class="button" value="Button1" id="button1"/> 

          

        <input type="submit" name="word"

                class="button" value="Button2" id="button2"/> 

    </form>


慕桂英3389331
浏览 114回答 1
1回答

莫回无

浏览器正在缓存调用的初始结果XMLHttpRequest。最简单的解决方法是通过将随机数作为参数附加到 url 来欺骗缓存。文件系统在查找文件时会忽略它。您可以添加任何您想要的查询变量('v' 很流行 - 有点代表版本)。有很多方法可以获得随机数,但使用 Unix 时间戳 -&nbsp;Date.now()&nbsp;- 是一种简单的方法,在这种情况下应该可以解决问题。更改代码:var&nbsp;file&nbsp;=&nbsp;'word.txt';至:var&nbsp;file&nbsp;=&nbsp;'word.txt?v='&nbsp;+&nbsp;Date.now();这将创建对这样的 url 的调用:word.txt?v=1519211809934
打开App,查看更多内容
随时随地看视频慕课网APP