【问题标题】:How to receive and show multiple messages in the browser with just one request?如何通过一个请求在浏览器中接收和显示多条消息?
【发布时间】:2019-07-04 07:55:48
【问题描述】:

我正在客户端使用Node.jsSuperAgent 中的Express 制作一个Web 应用程序。我在网络服务器端运行了一个漫长的过程,它每秒发送一条消息,直到它完成。此过程作为 Rest API 方法 公开,并在第一次从客户端调用时启动。 所以,我不知道如何做到这一点,不知道是否有办法让连接保持活动状态并在完成之前接收多个响应,或者我是否必须实现一个 setInterval 方法来发出请求了解该进程的当前状态。

您知道实现此类功能的最佳方式是什么吗?

【问题讨论】:

    标签: javascript rest api architecture


    【解决方案1】:

    解决方案的修订版本 我要给你看一个每秒变化的加载屏幕显示,所以它有点告诉你计算机每秒评估什么 看

    <html>
    <script>
    var counter = 0;
    var count = 0;
    var randome = 0;
    var undercount = -1; //To revert bullet behind loading bullet to original colour so that in 3 goes, the loading bar shall not be all loading colour 
    
    console.log("Random Integer has to turn to under 5 to stop loading process");
    
    
    var loadingDisplay = setInterval(myLoaderScreen, 1000);
    
    
    
    function myLoaderScreen () {
    
    
        if (undercount > 2) {
            undercount = 0;
        }
    
        if (undercount < 0) {
            //Doing Nothing 
            
        }
        
        else {
            document.getElementsByClassName('Loader')[undercount].style.color = 'green'; //reverter
        }
        
        
        
        
        
        
        
        randome = Math.random() * 40;
        randome = Math.floor(randome);
        console.log("Random Integer is: "+randome);
        
        
        if (randome < 5) { //Random Integer has to turn to under 5 to stop loading process or apply limit in this if statement
            clearInterval(loadingDisplay);
        }
        
        else {
            count = counter % 3;
            document.getElementsByClassName('Loader')[count].style.color = 'blue'; //changer
            counter += 1;
            undercount += 1;
            
        }
    }
    
    
    
    
    
    </script>
    <h1><span class="Load" style="color: green">Loading</span>
    <span class="Loader" style="color: green">•</span>
    <span class="Loader" style="color: green">•</span>
    <span class="Loader" style="color: green">•</span></h1>

    【讨论】:

    • 我的意思是向服务器发出请求并接收多个响应,告诉该进程在执行中的当前状态。如果该过程需要 30 秒,那么我希望我的 javascript 代码向用户显示从服务器获取信息作为更新消息的剩余秒数。
    【解决方案2】:

    是的,一个请求得到一个答案。因此,您可以使用 setInterval 在特定时间发出请求,但我建议您使用 websockets。 查看Socket.io。 这样,只要当前状态发生变化,您就可以从服务器发送更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2018-03-31
      • 2021-06-14
      • 2016-10-29
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 2019-01-06
      相关资源
      最近更新 更多