js

js 问题集锦 之 二

断了今生、忘了曾经 提交于 2020-02-26 11:11:04
一、ie下ajax请求缓存问题 在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。某些情况下,我们需要对同个地址请求实时数据 ,这就需要解决缓存问题。 一般的ajax请求: $(function () { window.setInterval(function () { $.ajax({ url:'url', success: function (result) { $("ul").append("<li>" + result + "</li>"); } }); }, 5000); }); 解决方法一:通过URL地址添加后缀 $(function () { window.setInterval(function () { $.ajax({ url:'url?'+ new Date().toTimeString() , success: function (result) { $("ul").append("<li>" + result + "</li>"); } }); }, 5000); }); 解决方法二: jquery中使用$.ajaxSetup来设置 $(function () { $.ajaxSetup({ cache: false }); window

JS自动复制

断了今生、忘了曾经 提交于 2020-02-26 11:06:59
一、前言 现在很多网站,尤其是技术性强的论坛、博客等,用户都可能有大量复制需求。但用户手动复制在内容不止一屏时很不方便,且一些网站的设计可能导致用户无法正确复制内容。因此,就需要使用脚本复制内容,实现点击按钮自动复制的效果。 本文大部分属性及方法参考MDN开发者文档,并有对应页面的链接,可供参考。 注:末尾附录有无注释的源代码,可直接在项目中使用。 二、设置剪贴板数据[IE Only] 显然,最方便的方法便是直接设置剪贴版的数据。在IE中暴露了 window.clipboardData 属性,可获取到一个表示剪贴版数据的对象。 这个对象的类型,至少在符合规范的新版本中是DataTransfer。在剪贴版这一例中,用到的该借口的函数有三个: getData(type),获取指定 type 类型的数据值。 setData(type,data),设置指定 type 类型的数据值为value。 clearData([type]),清空指定 type 类型的数据。如果不提供参数,则清空所有数据。 要注意该type不是通常意义的key,它的取值是固定的,如 text/plain(可直接使用 text), text/html , text/uri-list 等,显然是指 MIME 类型。 于是,简单地使用以下代码便可自动复制内容: window.clipboardData.setData(

js弹窗的3种方式:alert、confirm、prompt

╄→尐↘猪︶ㄣ 提交于 2020-02-26 10:47:25
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>三种弹出对话框的用法实例</title> <script language="javascript"> function ale() { //这个基本没有什么说的,就是弹出一个提醒的对话框 alert("我敢保证,你现在用的是演示一"); } function firm() { //利用对话框返回的值 (true 或者 false) if(confirm("你确信要转去风亦飞的博客?")) { //如果是true ,那么就把页面转向thcjp.cnblogs.com location.href="http://blog.csdn.net/fengyifei11228/"; } else { //否则说明下了,赫赫 alert("你按了取消,那就是返回false"); } } function

js数据类型1

久未见 提交于 2020-02-26 10:37:31
1. 分类(2大类) 基本(值)类型——5种 Number: 任意数值 String: 任意文本 Boolean: true/false undefined: undefined null: null 对象(引用)类型——2种 Object: 任意对象 Array: 特别的对象类型(下标/内部数据有序) Function: 特别的对象类型(可执行) 2. 判断 typeof: 可以区别: 数值, 字符串, 布尔值, undefined, function 不能区别: null与对象, 一般对象与数组 instanceof 专门用来判断对象数据的类型: Object, Array与Function === 可以判断: undefined和null 基本类型 // typeof: 返回的是数据类型的 字符串 形式 //1. 基本类型 var a console.log(a, typeof a, a===undefined) // undefined , 'undefined' , true console.log(a===typeof a) // false a = 3 console.log(typeof a === 'number') //true a = null console.log(typeof a) // 'object' //2. 对象类型 var arr = [1,2

js设计模式-策略模式

房东的猫 提交于 2020-02-26 10:37:19
在网上找了不少入门实例,依旧认为还是张容铭小哥给的情景最为适合,他的情境是这样的: 项目经理过来说,咱马上要过圣诞节啦,得打折清仓呀,有的商品5折,有的7折,有的9折~ 作为菜鸟的我🤔: 就这么尴尬的一个一个function垒起来~(在下刚入行的时候还真是这么写的😅~)。这时项目经理又来了,圣诞都打折了,元旦也表示一下儿呗,咱们来个满减吧~vip能满100减50,普通用户满100减30... 哪儿说理去,这需求说加就加,项目说改就改,没辙,谁让人家能带着我挣钱呢。不过我依旧固执的认为一个优秀的开发,是能够通过自己的代码设计来承受住需求业务的各种变化的~所以在下经过了一番修炼之后,将策略模式融合了进去,把代码美化了一番。 现在照着张小哥的小白书把代码改好了,如果各位客爷了解状态模式或者看过在下的另一篇 介绍状态模式的博文 的话,一定会对这个结构有点眼熟的,其实他也是由两个部分组成,分别是“策略类”和“环境类(环境方法)”。 上面这个例子中: 策略类 是指strategy对象,他可以保存所有的 策略名对应的算法 。 环境类 是用来调用传入要调用的策略名称和需要的参数,这个调用函数的地方我把书中的原文做了一点修改,原文中是在调用的时候只传了price作为参数 《js设计模式》书中原文 但这也既定了环境类只能摄入一个price价格参数,如果从设计的拓展性来考虑的话

专题1.1 JS文件延迟加载

女生的网名这么多〃 提交于 2020-02-26 10:13:21
指定JS文件延迟加载 给script标签,加上async标签,遇到此标签,先去请求,但是不阻塞解析html等文件~,请求回来就立马加载。 给script标签,加上defer标签,延迟加载,但是必须在所有脚本加载完毕后才会加载它,但是这个标签有bug,不确定能否准时加载,一般只给一个。 来源: oschina 链接: https://my.oschina.net/u/3105000/blog/3156339

js是什么?js可以做什么?js的构成与学习方向

风格不统一 提交于 2020-02-26 09:31:43
js( 百度官方介绍javascript )编程的基本语言学习目标是:a.怎么写和运行js脚本b.理解变量和值c.学会简单的数学运算符d.数据类型是什么e.流程控制 对于JavaScript的背景知识和结构,总结归纳回答以下3个问题:1.什么是JavaScript 2.JavaScript可以做什么 3.JavaScript由什么构成,学习方向是什么 针对问题1.什么是JavaScript?1.1js属于轻量级的编程语言/*之前学习的html与css只能算作设计语言,原因在于html和css是拿到设计稿后书写的是静态页面*/,JavaScript从字面解释就是参考Java给浏览器的命令脚本1.2脚本编程语言c++ 1.3js插入html,所有的浏览器都是支持的,通过解释器完成在服务器与手机展示 1.4js容易学,入门要求低,页面效果交互,js通过众多的学习资料与这个工作需求大,刺激激发学习兴趣,至于能否精通要靠自己不断练习与完善知识体系 针对问题2.JavaScript可以做什么?2.1html与css负责页面的内容,而js负责页面的交互行为,2.1.1改进设计,添加动态效果2.1.2表单验证,判断提示是否输入错误2.1.3检测浏览器是chrome还是ie,firebox等2.1.4创建cookis,存储数据 2.1小结:解决用户与页面的交互:基于不同操作,浏览器反馈展示不同页面

js中级系列三:前端性能优化

随声附和 提交于 2020-02-26 09:15:56
原文链接:http://www.cnblogs.com/xxcanghai/p/5205998.html 链接:http://www.zhihu.com/question/21658448/answer/18903129 前端优化的途径有很多,按粒度大致可以分为两类, 第一类是页面级别的优化,例如 HTTP请求数、脚本的无阻塞加载、内联脚本的位置优化等 ; 第二类则是代码级别的优化,例如 Javascript中的DOM 操作优化、CSS选择符优化、图片优化以及 HTML结构优化等等。 一、页面级优化   1. 减少 HTTP请求数   一个完整的请求都需要经过 DNS寻址、与服务器建立连接、发送数据、等待服务器响应、接收数据这样一个 “漫长” 而复杂的过程。时间成本就是用户需要看到或者 “感受” 到这个资源是必须要等待这个过程结束的,资源上由于每个请求都需要携带数据,因此每个请求都需要占用带宽。另外,由于浏览器进行并发请求的请求数是有上限的 (具体参见此处 ),因此请求数多了以后,浏览器需要分批进行请求,因此会增加用户的等待时间,会给用户造成站点速度慢这样一个印象,即使可能用户能看到的第一屏的资源都已经请求完了,但是浏览器的进度条会一直存在。   减少 HTTP请求数的主要途径包括:   (1). 从设计实现层面简化页面     如果你的页面像百度首页一样简单

JS中的词法作用域(静态作用域)和动态作用域

点点圈 提交于 2020-02-26 08:25:36
首先说明一下, JavaScript没有用动态作用域概念 ,但 this 机制却和动态作用域类似! JavaScript是通过作用域链的方式进行变量查找的,而JS作用域链是词法作用域,也就做静态作用域! 词法作用域:在函数声明(定义)时确定的 动态作用域:在函数调用时确定的 var cat = '有鱼'; function person() { console.log(cat); // 有鱼 } function student() { var cat = '年年'; person(); } student(); 代码分析: ①调用student函数,其内部又调用了person函数,因为JS使用的是词法作用域,即关心的是函数声明时的作用域,所以我们需要看查person定义里面的情况; ②person函数内部输出了cat,此时,找不到cat,按照作用域链特性向外层寻找,找到了cat为‘有鱼’;所以结果输出的是‘有鱼’; ③如果JS支持动态作用域,则需要看person()调用所在的作用域,即cat='年年';不过JS不支持动态作用域! 来源: oschina 链接: https://my.oschina.net/u/4450662/blog/3164871

原生Js实现踩白块

断了今生、忘了曾经 提交于 2020-02-26 08:04:17
< ! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < title > Document < / title > < link rel = "stylesheet" href = "./demo.css" > < / head > < body > < div class = "wrapper" > < div id = "go" > < a href = "#" > Game < / a > < / div > < div id = "main" > < / div > < / div > < script src = "./index.js" > < / script > < / body > < / html > * { padding : 0 ; margin : 0 ; text - decoration : none ; } . wrapper { position : relative ; width : 400 px ; height : 600 px ; margin : 150 px auto ; /*