页面中js执行顺序----<script执行顺序>

本文通过一个实例测试了页面中JavaScript的执行顺序,展示了位于head标签内的JS、body标签内的JS及body onload事件中的JS的执行先后顺序。

页面中js的执行顺序:在页面的head标签中添加一段js代码,在页面的尾部也就是</body>之前添加一段代码,然后在body的onload事件中引用一个函数,此三者的执行顺序如何?

下面是测试的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<head runat="server"> 
    <title>测试js的执行顺序</title> 
    <script language="javascript" type="text/javascript"> 
        var a = "这是一段在Header里面的JS代码"; 
        alert(a); 
    </script> 
</head> 
<body onload="javscript:alert('这是在body的Onload事件中的代码!');"> 
    <form id="form1" runat="server"> 
    <div> 
    <p>测试一下js的执行顺序 
    </p> 
    </div> 
    </form> 
    <script language="javascript" type="text/javascript"> 
        var a = "这是一段页面最后的JS代码"; 
        alert(a); 
    </script> 
</body> 
</html> 

 

运行后的执行顺序如下:

执行的顺序为:head中的js,页面中的js(将此段Js放置在body标签之外亦为此顺序),body标签onload事件中的js.

前端样式问题,1、看ftl文件里面的vue连接能否访问到 2、是否有图片数据生成的html有内容但是css js 样式没有<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover"> <title>黑马头条</title> <!-- 引入样式文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.12.20/lib/index.css"> <!-- 页面样式 --> <link rel="stylesheet" href="../../../plugins/css/index.css"> </head> <body> <div id="app"> <div class="article"> <van-row> <van-col span="24" class="article-title" v-html="title"></van-col> </van-row> <van-row type="flex" align="center" class="article-header"> <van-col span="3"> <van-image round class="article-avatar" src="https://p3.pstatp.com/thumb/1480/7186611868"></van-image> </van-col> <van-col span="16"> <div v-html="authorName"></div> <div>{{ publishTime | timestampToDateTime }}</div> </van-col> <van-col span="5"> <van-button round :icon="relation.isfollow ? '' : 'plus'" type="info" class="article-focus" :text="relation.isfollow ? '取消关注' : '关注'" :loading="followLoading" @click="handleClickArticleFollow"> </van-button> </van-col> </van-row> <van-row class="article-content"> <#if content??> <#list content as item> <#if item.type='text'> <van-col span="24" class="article-text">${item.value}</van-col> <#else> <van-col span="24" class="article-image"> <van-image width="100%" src="${item.value}"></van-image> </van-col> </#if> </#list> </#if> </van-row> <van-row type="flex" justify="center" class="article-action"> <van-col> <van-button round :icon="relation.islike ? 'good-job' : 'good-job-o'" class="article-like" :loading="likeLoading" :text="relation.islike ? '取消赞' : '点赞'" @click="handleClickArticleLike"></van-button> <van-button round :icon="relation.isunlike ? 'delete' : 'delete-o'" class="article-unlike" :loading="unlikeLoading" @click="handleClickArticleUnlike">不喜欢</van-button> </van-col> </van-row> <!-- 文章评论列表 --> <van-list v-model="commentsLoading" :finished="commentsFinished" finished-text="没有更多了" @load="onLoadArticleComments"> <van-row id="#comment-view" type="flex" class="article-comment" v-for="(item, index) in comments" :key="index"> <van-col span="3"> <van-image round src="https://p3.pstatp.com/thumb/1480/7186611868" class="article-avatar"></van-image> </van-col> <van-col span="21"> <van-row type="flex" align="center" justify="space-between"> <van-col class="comment-author" v-html="item.authorName"></van-col> <van-col> <van-button round :icon="item.operation === 0 ? 'good-job' : 'good-job-o'" size="normal" @click="handleClickCommentLike(item)">{{ item.likes || '' }} </van-button> </van-col> </van-row> <van-row> <van-col class="comment-content" v-html="item.content"></van-col> </van-row> <van-row type="flex" align="center"> <van-col span="10" class="comment-time"> {{ item.createdTime | timestampToDateTime }} </van-col> <van-col span="3"> <van-button round size="normal" v-html="item.reply" @click="showCommentRepliesPopup(item.id)">回复 {{ item.reply || '' }} </van-button> </van-col> </van-row> </van-col> </van-row> </van-list> </div> <!-- 文章底部栏 --> <van-row type="flex" justify="space-around" align="center" class="article-bottom-bar"> <van-col span="13"> <van-field v-model="commentValue" placeholder="写评论"> <template #button> <van-button icon="back-top" @click="handleSaveComment"></van-button> </template> </van-field> </van-col> <van-col span="3"> <van-button icon="comment-o" @click="handleScrollIntoCommentView"></van-button> </van-col> <van-col span="3"> <van-button :icon="relation.iscollection ? 'star' : 'star-o'" :loading="collectionLoading" @click="handleClickArticleCollection"></van-button> </van-col> <van-col span="3"> <van-button icon="share-o"></van-button> </van-col> </van-row> <!-- 评论Popup 弹出层 --> <van-popup v-model="showPopup" closeable position="bottom" :style="{ width: '750px', height: '60%', left: '50%', 'margin-left': '-375px' }"> <!-- 评论回复列表 --> <van-list v-model="commentRepliesLoading" :finished="commentRepliesFinished" finished-text="没有更多了" @load="onLoadCommentReplies"> <van-row id="#comment-reply-view" type="flex" class="article-comment-reply" v-for="(item, index) in commentReplies" :key="index"> <van-col span="3"> <van-image round src="https://p3.pstatp.com/thumb/1480/7186611868" class="article-avatar"></van-image> </van-col> <van-col span="21"> <van-row type="flex" align="center" justify="space-between"> <van-col class="comment-author" v-html="item.authorName"></van-col> <van-col> <van-button round :icon="item.operation === 0 ? 'good-job' : 'good-job-o'" size="normal" @click="handleClickCommentReplyLike(item)">{{ item.likes || '' }} </van-button> </van-col> </van-row> <van-row> <van-col class="comment-content" v-html="item.content"></van-col> </van-row> <van-row type="flex" align="center"> <!-- TODO: js计算时间差 --> <van-col span="10" class="comment-time"> {{ item.createdTime | timestampToDateTime }} </van-col> </van-row> </van-col> </van-row> </van-list> <!-- 评论回复底部栏 --> <van-row type="flex" justify="space-around" align="center" class="comment-reply-bottom-bar"> <van-col span="13"> <van-field v-model="commentReplyValue" placeholder="写评论"> <template #button> <van-button icon="back-top" @click="handleSaveCommentReply"></van-button> </template> </van-field> </van-col> <van-col span="3"> <van-button icon="comment-o"></van-button> </van-col> <van-col span="3"> <van-button icon="star-o"></van-button> </van-col> <van-col span="3"> <van-button icon="share-o"></van-button> </van-col> </van-row> </van-popup> </div> <!-- 引入 Vue 和 Vant 的 JS 文件 --> <script src=" https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"> </script> <script src="https://cdn.jsdelivr.net/npm/vant@2.12.20/lib/vant.min.js"></script> <!-- 引入 Axios 的 JS 文件 --> <#--<script src="https://unpkg.com/axios/dist/axios.min.js"></script>--> <script src="../../../plugins/js/axios.min.js"></script> <!-- 页面逻辑 --> <script src="../../../plugins/js/index.js"></script> </body> </html>
最新发布
11-28
### 解决ftl文件中vue连接访问问题 #### 检查路径配置 在ftl文件里,确保vue连接的路径配置正确。路径需要根据项目的实际目录结构来设置,避免出现相对路径或绝对路径使用错误的情况。例如,若在某个特定目录下的ftl文件引用vue相关资源,要保证路径能正确指向对应的vue文件。 #### 同源策略影响 由于同源策略要求协议、域名以及端口号都相同,若vue连接的协议、域名或端口与当前页面不一致,可能会导致访问问题。需要确保vue连接的资源与当前页面在同源策略的范围内。若需要跨域访问,可采用CORS(跨域资源共享)等方法来解决。例如,在服务器端配置允许跨域请求的响应头,以允许特定来源的请求访问vue资源 [^3]。 #### 检查文件存在性 确认vue文件是否真实存在于指定的路径下。可以通过手动检查文件系统或者在开发工具中查看文件路径是否正确。若文件不存在,需要将vue文件放置到正确的位置。 ### 解决html有内容但css和js样式缺失的问题 #### 检查资源路径 在生成的html文件中,检查css和js文件的引用路径是否正确。路径可能因为生成过程中的配置问题而出现错误,导致浏览器无法正确加载这些资源。例如,在ftl文件中生成html时,若使用了相对路径引用css和js文件,要确保在不同的部署环境下这些相对路径仍然有效。可以在浏览器的开发者工具中查看网络请求,确认css和js文件的请求是否返回404错误,若返回404,则说明路径可能存在问题。 #### 资源加载顺序 确保css和js文件在html文件中按照正确的顺序加载。一般来说,css文件应该在头部引入,以确保页面在渲染时能正确应用样式;js文件可以在头部或底部引入,若js文件依赖于页面元素的加载,建议在底部引入。例如: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="styles.css"> </head> <body> <!-- 页面内容 --> <script src="script.js"></script> </body> </html> ``` #### 缓存问题 有时候,浏览器会缓存css和js文件,导致更新后的样式无法及时显示。可以通过在开发过程中禁用浏览器缓存,或者在生产环境中为css和js文件添加版本号来解决。例如,在ftl文件中可以这样引用css文件: ```ftl <link rel="stylesheet" href="styles.css?v=${version}"> ``` 其中`${version}`可以是一个动态的版本号,每次更新样式时修改这个版本号,确保浏览器加载最新的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值