最近在开发前端的时候发现一个问题,这个问题应该是很多前端开发人员都容易忽视的一个问题,但却是一个很重要的问题。

就是在开发一个页面的时候,在使用某个函数时,这个函数可以正常使用,便会认为这个页面中定义或引入的js里边肯定包含有这个函数,但是事实并非如此。

如果你在开发过程中,你的页面全部都是通过异步加载进来的(一般网站的页面加载都是异步的),而自己在开发某个页面时打开过其他的页面,正好你打开过的页面中有你正在开发的这个页面要使用的函数,所以如果你在这个页面直接使用函数,然后进行测试,结果你会发现,这个函数可以正常使用,并不报错。而如果你重新刷新所有的页面,然后不要打开其他的页面,直接打开你刚开发的这个页面,页面就会出现页面异常,报没有定义有那个函数错误。

这个问题本人之前的开发中一直没有遇到过,所以,在本次开发的时候使用的一个函数并且能正常使用,本人就认为了本页面引入的js中是包含有这个函数的,让测试人员测试也没有问题,自己也就没有再去管它。

结果,这个页面在上生产一个多月之后,被发现了出来,本人当时也是一脸懵逼,最后项目组说要开会说这个问题,是要承担责任的,毕竟影响用户对这个平台的评价,本人就不得不找出问题的根本处在了什么地方了,为何自己在开发的时候没有出现,测试也没有出现,而在上生产一个多月之后出现了。

最后本人经过各层排查,发现此页面只有自己改过,所以问题一定是自己在开发过程中遗漏了什么问题。最后,自己写了几个页面和js进行了测试。发现,当一个页面通过异步加载,并覆盖掉之前页面的内容,之前的那个页面中的js其实是并没有被覆盖的,仍然存在在页面中并没有消失。所以,你如果没有经过上一个页面而直接打开这个页面就会报页面没有定义你使用的那个函数的错误

页面异步请求会保留原有的js内容的更多相关文章

  1. AJAX实现简单的注册页面异步请求

    p { margin: 0px; padding: 0px } AJAX简介 (1)AJAX = 异步 JavaScript 和 XML. (2)AJAX 是一种用于创建快速动态网页的技术. (3)通 ...

  2. 微信小程序 异步请求拿数据+使用外部js库

    信小程序(与js)通过requirejs引用外部js文件 var modelSearch = require('../../utils/modelSearch.js') 这是一个构建数据请求筛选条件的 ...

  3. javaweb局部刷新-ajax异步请求springMVC显示返回的jsp内容,代替iframe

    在jsp上要引入jquery <script src="<%=request.getContextPath()%>/js/jquery_ui/jquery.js" ...

  4. 异步请求(ajax,http) 之 逐渐完善的大全

    异步请求在我们的开发之中是经常需要学习和理解的内容,我们将会在这一篇文章中依据不同的语言和环境内容进行归类讲解. JS: ajax是我们最为常用的页面异步请求,在只需要修改部分页面内容而不需要更换全部 ...

  5. ajax异步请求数据

    源码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  6. Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)

    刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...

  7. js多个异步请求

    一,两个(或多个)js异步并发执行,怎么在两个AJax异步操作之后执行一个新的操作 原题来自 ES6 方法 1.Promise 包装异步ajax操作,2.定义async 函数,3.用await等待pr ...

  8. js异步请求发展史和yield

    万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现的,前端逻辑越来越复杂,导致回调函数越来越多,同时 nodejs 的流行也让 javascript 在后 ...

  9. Ajax:实现后台验证js实现get方式的异步请求,判断用户名是否重复

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...

随机推荐

  1. Linux Network Management

    Linux网络管理 (YouTube视频教程) ISO/OSI七层模型 ISO: The International Organization for Standardization 国际标准化组织 ...

  2. iStat for mac

    iStat for mac 电脑硬件信息检测软件,安装完成后它位于"系统偏好设定"的应用程序面板,让您从选单列监测系统的各项丰富资讯,又不会占用使用者太大的桌面空间,提供的信息包括 ...

  3. 【设计模式】之开闭原则(OCP)

    开闭原则是面向对象设计的一个重要原则,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭.即软件实体应尽量在不修改原有代码的情况下进 ...

  4. 第6章 影响 MySQL Server 性能的相关因素

    前言: 大部分人都一致认为一个数据库应用系统(这里的数据库应用系统概指所有使用数据库的系统)的性能瓶颈最容易出现在数据的操作方面,而数据库应用系统的大部分数据操作都是通过数据库管理软件所提供的相关接口 ...

  5. struts2.1.6教程四_2、ActionContext 、ValueStack 、Stack Context

    ActionContext 一次Action调用都会创建一个ActionContext 调用:ActionContext context = ActionContext.getContext() Va ...

  6. kotlin语言使用初体验(一)

    居说谷歌新认的干儿子kotlin极为受宠,隐隐有替代Java在 android平台老大位置的趋势.kotlin有谷歌撑腰,加上自己的底子也厚,再之与Java无缝兼容,将来在流行的编程语言中占有一席之地 ...

  7. iOS-swift-基础篇1

    一.swift是啥?答:百度. 二.swift基础知识. 1.输出函数:print print("Hello, world!") 2.简单数据类型 变量声明:var 常量声明:le ...

  8. 无声的吐槽csdn

    上次朋友聚会,说csdn挺好的,我琢磨着,那好我也去注册一个.经过n次的注册(用户名那边老是验证不过,不给中文开头,然后随便填了一个),终于搞定了! 我想,不错啊,做了这么多限制,挺安全的感觉.然后我 ...

  9. 浅谈MVC数据验证

    一.一般情况 对于使用过MVC框架的人来说,对MVC的数据验证不会陌生,比如,我有一个Model如下: public class UserInfo { [Required(ErrorMessage = ...

  10. PHP数组简介

    一.PHP数组的分类 按照下标的不同,PHP中的数组分为关联数组和索引数组:索引数组:下标从0开始,依次增长. $arr=[1,2,3,4,5]; 关联数组:下标为字符串格式,每个下标字符串与数组的值 ...