今天实在是忍不住生气了。写过不止一个Ajax的应用了,长时间处理FF,Chrome都很正常,就是IE用不了,也不想管。今天确实必须用IE了,调了很久一直就报这个错,后来,我把Jquery的js引用删除后发现报同样的错,知道是Jquery没有加载上了,我调整了Jquery的加载顺序,依然不起作用。找了很多地方,无意中看到了defer="true"这个属性,索性抱着偿试一下的态度,突然之间就好了。我的个去。气死了。
这个东东简单理解就是“等文档加载完毕了再执行脚本内容”,就这么简单一个属性,让我搞了很长时间。
下面是在别人博客上看到的关于defer,仅供参考
<script defer="true">alert("加载完页面元素后再执行js");</script>
<script src='...js' defer="true"></script>
defer只是加载完成页面元素后在执行js脚本。
其实就是简单的利用defer属性,让浏览器读JS脚本的时候完全不等脚本开始读就开始读下面的图片啊,html代码了。然后让js脚本自己在那里慢慢读取完以后再执行。
给外链的js脚本添加defer="true",像下面这个这样就可以了:
<script defer="true" src="JavaScript.js" type="text/javascript"/>
特别是比较大的脚本,提高整个网页的载入速度是非常明显的
应用实例解决:document.getElementById为空或不是对象
1. 'null'为空或不是对象:
<script type="text/javascript"> 里面加个defer=true属性试试看,
即:<script type="text/javascript" defer=true>
2. document.getElementById为null
原因: var titab=document.getElementById("titletab");没有取到对象
解决办法:
1.在错误语句的下面加上alert(titab);调试语句,看看是否有消息框弹出
2.如果没有弹出,检查HTML代码中的是否存在"id=titletab"的<table>标签(要仔细哦,一个字母都不能错的)
3.如果标签存在,那么考虑<script>代码段的位置问题,切记包含有类似getElement代码<script>代码段 必须出现在HTML的Element之后也就是说你把<script>代码段放到<html>标签之后然后尝试
使用defer是应注意:
。
注意defer="true"还可以用作defer="defer",似乎使用defer="defer"比较普遍,我查看一个微软的文档,好像XTHML格式的网页用defer="true"比较恰当。
另外注意,defer="true"这个东西不要在脚本程序段中调用document.write命令,因为将产生直接输出效果
如果不显式声明 defer ,则其默认值 是false
分享到:
相关推荐
当你遇到“'guid' 为空或不是对象”的错误时,这意味着在你的代码中,尝试访问或操作的`guid`变量可能是未定义的、null,或者它不是一个预期的对象类型。 这个问题可能由多种原因引起,以下是一些可能的情况和解决...
然而,在特定的场景下,开发者可能会遇到一个特定的错误——“length为空或不是对象”,这通常是由Datepicker组件的bug导致的。 要解决这个问题,首先需要了解在何时会出现这个错误。通常,当我们在Datepicker组件...
由于跨域安全限制,父页面与子页面之间可能存在通信障碍,导致在子页面中引用父页面的变量或对象时出现“对象未定义”的错误。在这种情况下,需要检查iframe的src属性,确保它们指向正确的URL,并且遵守同源策略。 ...
- **数据序列化与反序列化**:SpringMVC使用`@RequestBody`和`@ResponseBody`注解将JSON数据自动转换为Java对象,反之亦然。 - **响应处理**:jQuery接收服务器返回的JSON数据,通过回调函数处理结果,更新页面...
4. **删除JSON对象的属性**:JavaScript本身不提供直接删除对象属性的方法,但可以通过设置属性值为`undefined`或`null`达到类似效果。例如: ```javascript delete jsonData.city; // 在ES6及以上版本中推荐使用...
这通常涉及到检查变量是否已定义、是否有值,或者更具体地,值是否为null、undefined、空字符串、零、空数组或空对象。本教程将深入探讨如何使用JavaScript和jQuery来执行这些检查。 首先,我们要明确“空”在不同...
JSON是一种轻量级的数据交换格式,可以将JavaScript对象转换为字符串,同时也能将字符串解析为JavaScript对象。在后台,我们可以将接收到的JSON字符串反序列化为Java对象。 假设我们有一个Person类,它包含一个...
5. **$.extend()**: 对于深拷贝,如果目标对象是null,$.extend()现在会抛出错误,防止潜在的问题。 ### 共享特性与API 1. **选择器**: jQuery支持CSS1至CSS3的选择器,如`$("div.class")`、`$(".class")`和`$("#...
1. **类型转换**:使用`new String(temp)`会将`temp`强制转换为字符串类型,这意味着即使`temp`原本为`null`或`undefined`,也会被转换为字符串形式(即空字符串`""`),从而导致误判。 2. **逻辑判断**:使用`temp1...
2. PHP高级特性:包括面向对象编程(类、对象、继承、接口、抽象类)、命名空间、错误处理、异常处理、文件系统操作、会话控制、邮件发送等功能。 3. PHP内置函数:如字符串处理函数、数组处理函数、日期与时间函数...
`jQuery.cookie` 插件是由Carhartl开发的,它为jQuery库添加了方便的Cookie操作方法。 **1. 安装与引入** 首先,你需要将`jQuery`库和`jQuery.cookie`插件引入到你的HTML文件中。你可以通过CDN链接获取这两个文件...
如果尝试解析的字符串不是有效的JSON,`JSON.parse()`会抛出一个错误。因此,使用try-catch语句可以捕获并处理这些异常。 6. **代码高亮**:为了增强可读性,可以使用代码高亮库,如Prism.js或highlight.js,它们...
// 处理网络或服务器错误 } }); }); ``` **步骤三:Java后端处理登录请求** 在Java后端,我们需要一个控制器或者服务类来接收和处理这个登录请求。这通常涉及数据库查询来验证用户名和密码。 ```java @...
然而,这只是一个简化版,实际的jQuery `$.ajax()`方法还包含更多的功能,如错误处理、跨域请求的CORS支持、预处理和后处理函数、以及更复杂的序列化和反序列化逻辑。在生产环境中,我们可能需要考虑这些问题以提高...
jQuery xml-to-json插件是一种用于将XML数据转换为JavaScript Object Notation (JSON)格式的工具。在Web开发中,XML和JSON都是常见的数据交换格式,但它们有着不同的应用场景和优势。XML(Extensible Markup ...
jQuery选择器返回的是一个jQuery对象,即使没有匹配的元素,它也会返回一个空集合。我们可以通过检查这个集合的`.length`属性来判断对象是否存在。如果`.length`大于0,说明至少有一个匹配的元素: ```javascript...
这里使用`addMethod`函数向`jQuery.validator`添加了一个名为`idCardNo`的新方法,该方法接受两个参数:`value`(待验证的值)和`element`(待验证的DOM元素)。 #### 内部验证逻辑 内部验证逻辑主要分为以下几个...
3. **NULL的理解**:null不是undefined,它是一个明确的值,表示某个变量有意为之的“空”。当尝试访问null的属性或方法时,会触发DOMException。 4. **错误排查**:解决这种问题通常需要查看浏览器的开发者工具,...