js的加载顺序
window.onload(直接说发现的问题即结论)
window.onload,在google里面先执行创建页面布局,没有问题,在ie执行有问题,因为他没有先执行页面布局,然后我们js,jq都获取不到值,个人猜测:
1.micosoft已经放弃了ie浏览器,不进行更新了,然后依然让onload的函数第一个执行。
解决方案:我们只要去掉onload就可以以js的执行顺序执行了
添加事件与与dom操作并行
var input = document.createElement("input");
input.type = "file";
input.click();
input.onchange = function (){
};
这段代码在google上面执行时没有问题的,ie和edge(chorme内核)都有问题,为什么呢?请看下面代码
var input = document.createElement("input");
input.type = "file";
input.onchange = function (){
};
input.click();
这段代码不管是哪个浏览器都没问题,为什么回产生区别呢,大家可能还记得async这个函数,类似ajax的异步同步问题,第一个是因为先给他点击,在google中点击的时候是异步的,所有他会立刻执行谈价onchange事件,但是在ie中是同步的,点击这个操作执行,当用户吧把file上传以后才添加了onchange事件。所以大家code的时候要注意js的问题
ie浏览器不支持js的直接使用style
var img = document.createElement("img");
img.style = 'height:5%;width:20%';
这段代码可以在google上运行,但是在ie上是用不了的
var img = document.createElement("img");
img.style.height='5%';
img.style.width='20%';
需要使用这样的写法
ie ajax不提交
ie的缓存做的不好,为了防止ajax不停的提交,有时候会不执行,直接返回。当传递的参数值相同时ajax会不执行。解决方案
$.ajax({
url:"../user/getuser",
async: false,
cache: false,//禁用缓存
type: "get",
success: function (data) {
或者
$.ajax({
//加随机数,每次的url传参都不同
url:"../user/getuser?random="+Math.random(),
async: false,
cache: false,//禁用缓存
type: "get",
success: function (data) {
附加 chrome session失效
最近做项目都是使用chrome浏览器,每次打开以后也不关,等第二天开机还是原来的样子,在用了一段时间以后发现session开始丢失,我使用druid监控发现,每次会话都会换一个jsessionid 。
在研究了很久后发现代码时没有问题的,设置session失效时间也没用,原因可能出在chrome上面,
我猜测,可能是chrome一直不关闭,每次使用以后添加新的缓存,然后chrome的缓存满了,所以,session存不进去,于是重启chorme,问题解决。