疫情地图公众号加快访问速度(补充)


我们可以看到,现在我们访问的时长是331ms,并且它所接受的并发访问比较小,那么我们应该如何去优化它呢?

我们来看一张图

由这张图可知,在硬件设备已定的情况下,在选择服务器时首先应该地理选择位置距离自己最近的服务器,进而缩短用户访问服务器所需要的时间。那么剩下的大量时间就花费在了服务器访问提供数据服务器的过程中,那么我们应该如何解决呢?
一个很常见的策略就是缓存策略:第一个人访问时长不变,在服务器拿到数据后可以根据数据更新的频率设定一定条件将数据先缓存在服务器中,这样,用户就能节省大大的时间。
部分代码如下:

<%!
    //java代码的声明区
    //这里用来定义一些变量,只有第一次访问时会执行,后续访问重复使用第一次创建的变量。
    //时间戳:从格林威治历开始(1970年开始)到现在的13位毫秒数字
    //java中获取时间戳的方式:System.currentTimeMillis();
    //用于缓存疫情数据的变量text
    String text = null;
    //用于表示加载数据时的时间戳,0表示1970年
    long time = 0;
    
    
    
%>
        <%
            //java代码执行区域
            if(System.currentTimeMillis() - time > 600000){
                //0.更新加载数据时的时间
                time = System.currentTimeMillis();  //更新时间
                //1. 创建一个url对象。u1
                URL u1 = new URL("https://zaixianke.com/yq/all");
                //2、(建立连接),通过网址u1,打开网络连接,并得到连接对象conn
                URLConnection conn = u1.openConnection();
                //3、(获取数据传输的流),通过连接对象conn,获取输入流is
                InputStream is = conn.getInputStream();
                //4、将输入流is,装饰为一次能读取一行的  缓冲字符输入流
                BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
                //5、读取内容
                text = br.readLine(); //更新缓存的疫情数据
                //6、关闭流
                br.close();
            }
        %>



            var data = <%=text %>

现在再让我们访问一次网页

访问时间为大大减少,变为了61ms。

你可能感兴趣的:(java,服务器)