1、防止普通用户缓存静态文件,每次修改之后给静态文件的应用后面加上参数后缀[项目文件较多时最好使用前端构建工具]

比如:

<script src="$!webPath/resources/js/orderPayInfo.js?ver=2" type="text/javascript"></script>

但是这种做法也有弊端,即浏览器给这种缓存方式的缓存容量太少了,只有12Mb,且不分Host。所以更极致的做法是以文件名为Key,文件内容为value,缓存在localStorage里,命中则从缓存中取,不命中则去服务器取,虽然缓存容量也只有5Mb,但是每个Host是独享这5Mb的。

2、微信支付和快捷支付那一块,需要轮询服务器订单的状态,当状态发生改变时需要做相应的跳转动作, 此时的请求需要加时间戳,因为相同的请求操作会被缓存下来,也就是会缓存本地的已有的数据,如果不加时间戳程序会使用本地缓存的数据

url:contextPath+'/pingan/pay/quick/orderPayTotalStatus.htm?'+(new Date()).getTime(),

3、小的逻辑块可能重复使用,此时最好都封装进小的函数中,方便以后使用

4、iframe的弊端太多,谨慎使用

5、localStorage 和 sessionStorage 使用  本地存储和本地会话存储很有用

6、留意同步请求和异步请求,当需要拿到请求的数据使用时,需要写成同步请求:比如

function checkOpenAccNo(){
var len = true;
jQuery.ajax({
type: "POST",
async:false,
url: contextPath+"/pingan/pay/quick/listopencards.htm",
dataType: "text",
success:function(data){
data = jQuery.parseJSON(data);
var cards=data.data.accNos;
if(!cards.length){
len = false;
}
},
error:function(e){ }
}); return len
}

6、git/recource tree 命令

$ git stash

$ git log

$ git stash pop

以上这几个命令经常一起用。 

7、获取当前域名

window.location.host

document.domain

例如:

document.domain
"www.baidu.com"
window.location.host
"www.baidu.com"

8、获取当前页面地址

document.referrer  //如果当前文档不是通过超级链接访问的,则为 null。这个属性允许客户端 JavaScript 访问 HTTP 引用头部。

window.location.href

例如:

window.location.href
"https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E6%90%…UuFGh4gfDqIX10zvw&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=9&rsv_sug7=100"
document.referrer
""

9、取消当前文档的选中

document.onselectstart = function () { return false; }

8、站长统计

var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cspan id='cnzz_stat_icon_1259954722'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s11.cnzz.com/z_stat.php%3Fid%3D1259954722%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));

9、seo 中的网站验证

<meta name="baidu-site-verification" content="IUSTUHWIjp" />

10、type=“file”的click事件

两种实现方式  

<div class="add-img">
+
</div>
<input type="file" name="myfile"> $('.add-img').click(function(){
$(this).next('input[name="myfile"]').trigger('click');
})
$('.add-img').click(function(){
var that =this;
setTimeout(function(){
$(that).find('input[name="myfile"]').trigger('click');
},0) }) <div class="add-img">
+
</div>
<input type="file" name="myfile">
//从这种解决方式可以看到 文档结构中input type="file" 拿到点击对象的外面就不会出现一直触发回调的情况了 【你写在后面应该是不会出现这个情况的,父子关系,trigger一直触发这个回调】

11、当后台返回一个查询结果的view界面就不能使用正常的ajax请求得到的数据然后再展示数据

12、js代码

//搜索订单信息
jQuery('#search-order').click(function(){
var orderId = jQuery(this).parent().find('input').val();
jQuery(this).attr('href',contextPath+'/buyer/order.htm?order_id='+orderId);
})

//后台返回的数据有重复的  去重

//我的足迹去重
var result = [];
#foreach($listCase in $footPointList)
var goodsCase = jQuery.parseJSON('$listCase.fp_goods_content');
for(var i=0;i<goodsCase.length;i++){
result.push(goodsCase[i])
}
#end
function uniqu(){
var itemList = [];
var ssjson = {};
for(var j=0;j<result.length;j++){
var item = result[j];
if(!ssjson[item.goods_id]){
itemList.push(result[j])
ssjson[item.goods_id] = 1;
}
}
return itemList
}
var res = uniqu();
jQuery.each(res,function(i,item){
var imgUrl = item.goods_img_path;
var goodsUrl = '$!webPath/goods_'+item.goods_id+'.htm';
var goodsName = item.goods_name;
var goodsPrice =item.goods_price;
var html ='<ul class="rbox_ul">' +
'<li class="rbox_ul_img">' +
'<a href="'+goodsUrl+'" target="_blank">'+
'<span class="img_cspan">'+
'<p><img src="'+imgUrl+'" width="190" height="190"></p>'+
'</span>'+
'</a>'+
'</li>'+
'<li class="rbox_ul_name">'+
'<a href="'+goodsUrl+'" target="_blank">'+goodsName+'</a>'+
'</li>'+
//'<li class="rbox_ul_evaluate">(已有0人评价)</li>'+
'<li class="rbox_ul_price">¥'+goodsPrice+'</li>'+
'</ul>';
jQuery('#fp').append(html)
})

13、//使用百度静态资源库注意写上回退机制,保不准哪天别人的资源库宕机了,代码如下

<script type="text/javascript" src="//apps.bdimg.com/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
(function(){
window.jQuery || document.write('<script src="$!webPath/resources/js/jquery-1.6.2.js"><\/script>');
})();
</script>

  

javascript笔记——工作笔记的更多相关文章

  1. javascript - 工作笔记 (事件四)

    在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装,  JavaScript Code  12345   yx.bind(item, "click&quo ...

  2. JavaScript语言精粹笔记

    JavaScript语言精粹笔记 掌握语言的每个特性可以让你出风头,但是并不推荐,因为一部分的特性带来的麻烦可能远超本身的价值.正如书中所言,坏的材料并不能雕刻出好的作品,要成为一名更好的程序员,要取 ...

  3. 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素

    这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找.  html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...

  4. 工作笔记5.JAVA图片验证码

    本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServl ...

  5. 《工作笔记:移动web页面前端开发总结》

    工作笔记:移动web页面前端开发总结 移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (I ...

  6. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  7. JavaScript看书笔记01

    JavaScript看书笔记... ------------------- JavaScript允许var定义语句出现在函数内部的任意位置.JS中使用Var来显示的给变量声明 JavaScript是一 ...

  8. JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...

  9. 《你不知道的javascript》读书笔记2

    概述 放假读完了<你不知道的javascript>上篇,学到了很多东西,记录下来,供以后开发时参考,相信对其他人也有用. 这篇笔记是这本书的下半部分,上半部分请见<你不知道的java ...

随机推荐

  1. VB连接Mysql数据库

    当然机器装有mysql数据库 然后下载安装Mysql,odbc驱动 须要加入ado'菜单"project"->"引用" 找 Microsoft Activ ...

  2. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  3. 在.NET中实现彩色光标/动画光标和自定义光标[转]

    下面是完整的例子,可以通过命令行编译即可看到效果. Test.cs using System; using System.Drawing; using System.Windows.Forms; us ...

  4. C++之EOF()

    fstream流的eof()推断有点不合常理 按常理逻辑来说,假设到了文件末尾的话,eof()应该返回真,可是,C++输入输出流怎样知道是否到末尾了呢? 原来依据的是:假设fin>>不能再 ...

  5. as 中的反射 describeType

    describeType函数在adobe官方在线文档上的定义如下:生成描述ActionScript对象(命令为方法的参数)的XML对象,此方法实现ActionScript语言的反射编程概念. 这个方法 ...

  6. MySQL Router 测试使用 转

    MySQL Router 测试使用 . 特性 MySQL Router 并没有包括一些特别新的特性, 总体上看中规中矩, 不过 first-available 和插件两个特性挺有意思, 后续会进行讲解 ...

  7. C++中创建对象的时候加括号和不加括号的区别

    c++创建对象的语法有----- 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new My ...

  8. Linux 学习笔记 文件权限

    * Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户.这些账户称作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户. 所有运行在后台的服务都需要用一个系统用户账户登 ...

  9. hive-安装MySQL(centos6.4)

    为安装hive做准备,以前装过无数次,在线的.tar包的,一直不用忘得差不多了. centos6.4 虚拟机 先看有没有装,有的话应该是自带的,卸载就可以了 命令分别是 然后在线安装,命令是 (-y是 ...

  10. APP测试基本流程

    一. 测试周期 测试周期一般为两周,根据项目情况以及版本质量可适当缩短或延长测试时间.正式测试前先向主管或产品经理确认项目排期. 二.测试资源 测试任务开始前,检查各项测试资源. 产品功能需求文档 产 ...