javascript - 如何防止页面加载重复的JS?

 Mars丶fasfa 发布于 2022-11-20 00:16

我自己写了一个页面,除了公共部分的页头页脚以外,其余内容都是通过Ajax加载过来的,现在遇到了比较头疼的问题:

先说一下我加载的方式

$.ajax({
    type : "GET",
    url : hrefPage,
    dataType : 'html',
    cache : true, // (warning: this will cause a timestamp and will call the request twice)
    success : function(data) {
    window.history.pushState({"url":hrefPage}, "", hrefPage);
    //把所有内容替换至相应的p元素中
        container.html(data);
    },
    async : false
})

在我从远程获取的html代码中,包含了

6 个回答
  • 也可以考虑在那个 js 里最前面的位置加一个全局变量,标识自己是否执行过。如果执行过,就退出。

    2022-11-20 00:58 回答
  • 你ajax获取的html代码里面有js,剥离开来。

    2022-11-20 00:58 回答
  • 你这相当于间接引入了jtml页面啊

    2022-11-20 00:58 回答
  • 正常情况下,页面之间是独立的,上一个页面的JS跟下一个页面没什么关系。我也想知道答案。

    2022-11-20 00:58 回答
  • 关键是你为什么这么做???非要这么做你就在获取到数据后,用正则把body的头尾都去掉就行了。

    2022-11-20 00:58 回答
  • 根据你的描述我感觉你的问题是出在调用ajax这边,没看过你具体的代码,具体情况要具体分析,我怀疑是jquery多次触发导致的。你是不是每次请求都是上一次的1倍。

    试下ctrl+r刷新 然后再ajax请求看看,有没有出现你的状况,只点击一次。

    ajax请求的话也要加上回调,再每次回调完成后再可请求下一次。

    var aaa = true;
    
    function ajax(url,callback){
         ajax({
           url : url,
           success : function(json){
              callback(json);
           }
         })
    }
    
    // 请求
    $("#...").on("click",funciton(){
          if(aaa){
            aaa = false;
            ajax('',function(json){
               aaa = true;
            )} 
          }else{
              alert("等下再请求好不好")
          }
    })
    
    2022-11-20 00:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有