共计 974 个字符,预计需要花费 3 分钟才能阅读完成。
咱们能够看到,当初咱们拜访的时长是 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。
正文完