问题描述
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script language="JavaScript1.2" type="text/javascript">function delayURL(url) {var delay = document.getElementById("time").innerHTML;//最后的innerHTML不能丢,否则delay为一个对象 if (delay > 0) {delay--;document.getElementById("time").innerHTML = delay;} else {window.top.location.href = url;}setTimeout("delayURL('" + url + "')", 1000);//此处1000毫秒即每一秒跳转一次 }</script></head><span id="time" style="background: red">4</span> 秒钟之后自动跳转,如果不跳转,请点击下面链接<a href="index.jsp">主题列表</a></html><script type="text/javascript">delayURL("http://www.baidu.com");</script>如果我将<script type="text/javascript">delayURL("http://www.baidu.com");</script>放在head标签里面,程序就不会根据时间来跳转了,方在下面和放在head标签里面有什么区别,望高手详细讲解。
解决方案
因为html页面是从上到下加载 把js放在最下边的好处是:html页面已经加载完毕,此时用户已经看到界面;为什么不放到上边:因为放到上边可能有些js代码写dom/做其他比较耗时的任务,此时会阻塞页面的加载,导致用户在等待;一般的:1、js放到页面最下边2、通过window.onload 注册页面加载完成的回调 来执行js还有css一般放到上边,这样页面加载完成且样式也计算完毕
解决方案二:
看这个http://zhidao.baidu.com/question/118192191.html
解决方案三:
js是一行一行的解析的,从上到下