js

JAVASCRIPT、JSP、JS有什么区别和联系

自闭症网瘾萝莉.ら 提交于 2020-01-25 08:07:55
JAVASCRIPT、JSP、JS有什么区别和联系 js是javascript的缩写。以下是JSP与JS的区别和联系: 名字:JS:JavaScriptJSP:Java Server Pages 执行过程:JSP先翻译,翻译成Servlet执行如: test.jsp 要变成 test_jsp.java 然后编译成 test_jsp.class而 test_jsp.java 本身就是一个servlet.所以 jsp只是servlet的一个变种,方便书写html内容才出现的。servlet是根本,所有jsp能做的,servlet全能做。 JS:是一种基于对象的客户端脚本语言。目的是解决服务器端语言。如:Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JS可以直接嵌入到html代码中进行解析执行,非常简单易学,可以产生很多动态的效果。 形象比较:JS是在客户端执行的,需要浏览器支持JavaScript。JSP是在服务器端执行的,需要服务器上部署支持Servlet的服务器程序。JS代码能够直接从服务器上download得到,对外是可见的,jsp(和翻译后的Servlet代码)是对外不可见的。 JS和JSP相比较:虽然JS可以再客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务。如:访问数据库和图像处理等等。JSP在HTML中用<% %>里面实现

js清除浏览器缓存的几种方法

☆樱花仙子☆ 提交于 2020-01-25 05:49:53
关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能。但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据。像股票类网站实时更新等,这样的网站是不要缓存的,像有的网站很少更新,有缓存还是比较好的。今天主要介绍清除缓存的几种方法。 清理网站缓存的几种方法 meta方法 //不缓存 <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> 清理form表单的临时缓存 <body onLoad="javascript:document.yourFormName.reset()"> 其实form表单的缓存对于我们书写还是有帮助的,一般情况不建议清理,但是有时候为了安全问题等,需要清理一下! jquery ajax清除浏览器缓存 方式一 :用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下: $.ajax({ url:'www.haorooms.com', dataType:'json', data:{},

js函数实现递归自调用的方法

夙愿已清 提交于 2020-01-25 05:43:35
js函数的递归调用方法 1.通过函数自身名字递归调用 function sum(num){ if(num<=1){ return 1; }else{ return num+sum(num-1); } } console.log(sum(5));//15 这种通过函数名字调用自身的方式存在一个问题:函数的名字是一个指向函数对象的指针,如果我们把函数的名字与函数对象本身的指向关系断开,这种方式运行时将出现错误。 2.通过arguments.callee调用函数自身 function sum(num){ if(num<=1){ return 1; }else{ return num+arguments.callee(num-1); } } console.log(sum(5));//15 var sumAnother=sum; console.log(sumAnother(5));//15 sum=null; console.log(sumAnother(5));//15 这种方式很好的解决了函数名指向变更时导致递归调用时找不到自身的问题。但是这种方式也不是很完美,因为在严格模式下是禁止使用arguments.callee的。 3.通过函数命名表达式来实现arguments.callee的效果。 var sum=(function(){ 'use strict' return

JS:包装类

拥有回忆 提交于 2020-01-25 05:16:20
基本数据类型 String Boolean Null undefinded 引用数据类型 Object 在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据对象转换为对象 String()可以将基本数据类型转换为String对象 Number()可以将基本数据类型转换为Number对象 Boolean()可以将基本数据类型转换为Boolean对象 https://www.w3school.com.cn/jsref/jsref_obj_string.asp 来源: CSDN 作者: F_aF_a 链接: https://blog.csdn.net/qq_37252519/article/details/103748210

JS 实现分页打印

感情迁移 提交于 2020-01-25 03:04:55
最近在搞打印,分页打印问题困惑较长时间,经过查询资料总结出关于打印相关问题供参考: 一、小票打印问题:直接用的是佳博的小票打印机,型号:GP-L80160,本机windows10 直接安装打印机驱动即可打印,对应驱动: GAINSCHA 80mm系列打印机驱动程序V18 驱动下载地址: https://pan.baidu.com/s/1-tSKXkowJkm8zICcBeovxw 密码:irdm 安装过程供参考: 安装完驱动后在设备和打印机里也可以进行设置: 注意:边距选择“无”则打印出来的小票无边距,字体也会较大。如果选择默认,则边距较大且字体较小。 以上使用的是谷歌浏览器!!! 网上找了一个关于打印的html源码:貌似只适用于IE浏览器且IE浏览器要允许使用ActiveX控件,谷歌浏览器点击没有反应。 <!DOCTYPE html> <html lang="en"> <head> <title>页面打印</title> <!--media=print 这个属性在打印时有效 有些不想打印出来的分页打印的都可以应用这类样式进行控制 在非打印时是无效的(可从打印预览中看到效果)--> <style media=print> /* 应用这个样式的在打印时隐藏 */ .noPrint { display: none; } /* 应用这个样式的,从那个标签结束开始另算一页

性能优化浅谈

守給你的承諾、 提交于 2020-01-25 02:50:00
不知不觉已经正式上班大半年了,去年的这个时候刚开博客不久,希望能伴随自己成长。在大半年的学习和工作中,自己也在一步步的开始沉静,越加觉得自己才疏学浅,也倍感前端知识博大精深。 这次总结主要关于性能优化探索心得。水平很浅,只是说说自己的学习收获。 ************这里开始了************* 看过的前端开发书籍都在说这四个字,性能优化的字面解释是:不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。这句话可以看出性能优化的目的:更快的速度、更少的时间。 1)性能优化有什么意义? 谷歌的数据表明,一个有10条数据0.4秒可以加载完的页面,在变成30条数据加载时间为0.9秒后,流量和广告收入减少了20%。当谷歌地图的首页文件大小从100kb减少到70~80kb时,流量在第一周涨了10%,接下来的三周涨了25%。腾讯的前端工程师根据长期的数据监控也发现页面的一秒钟延迟会造成9.4%的PV的下降,8.3%跳出率的增加以及3.5%转化率的下降。这两家公司都是行业的翘楚,具有极其巨大的用户群,这些数据足够让我们重视性能优化。近八成的用户可以忍受的响应时间为5秒,500PC的主站打开资源加载完毕的时间为5.67s,QQ彩票为12.75s,网易彩票为16.79,看到这里还是很骄傲的*_*。   2)如何优化? 资料显示和浏览器调试分析发现

JS内置对象方法——array

拥有回忆 提交于 2020-01-25 01:50:56
  最近,感觉JS有些方法忘记了,这几天会抽空复习的,先从数组方法开始,然后是字符串方法,然后Math方法,在Data方法。   我尽可能的全面,但有些真的忘了,甚至忘得连一点印象也没了。   array方法:     ES6:         find:参数为回调函数,回调函数可以接收3个参数,值x,索引 i,数组arr,回调函数默认返回值x;         findIndex:和find差不多,不过默认返回索引;         includes:和String的includes一样,接收2参数,查询的项以及查询起始位置;         keys:对数组索引进行遍历;         values:对数组项进行遍历;         entries:对数组键值进行遍历;         fill:方法改变原数组,当第三个参数大于数组长度的时候,以最后一位为结束位置;         Array.of():永远返回一个数组,参数不分类型,只分数量,数量为0返回空数组;         copyWithin:接收三个参数,被替换数据的开始处,替换块的开始处,替换块的结束处;copyWithin(s,m,n);         Array.form():可以吧带有lenght属性类似数组的对象转换为数组,也可以吧字符串等可以遍历的对象转换为数组,它接收2个参数,转换对象与回调函数

C# 和 js中的栈、队列

三世轮回 提交于 2020-01-25 01:47:12
一、C# 中的栈队列用法 C#: queue.Dequeue() 从队列中删除第一个元素并返回它 js: array.shift(); 从数组中删除第一个元素并返回它 1 static void Main(string[] args) 2 { 3 // 队列 4 // 先进后出 5 Queue<int> queue = new Queue<int>(); 6 Console.Write($"加入队列:"); 7 for (int i = 0; i < 10; i++) 8 { 9 Console.Write($" {i} "); 10 queue.Enqueue(i); // 在队里结尾加上一个元素 11 } 12 Console.WriteLine(); 13 Console.Write("队列输出:"); 14 while (queue.Count > 0) 15 { 16 Console.Write($" {queue.Dequeue()} ");// 取出队里第一个元素并从队里中删除它 17 18 } 19 20 // 栈 21 // 先进先出 22 Stack<int> stack = new Stack<int>(); 23 Console.WriteLine(); 24 Console.WriteLine(); 25 Console.Write($"入栈:"); 26

js 数组对象的方法 常用API

泄露秘密 提交于 2020-01-25 01:04:08
改变原数组的 ES5 push() //向数组的末尾添加一个或多个元素, 返回新数组长度 语法: arr.push(element1[, ...[, elementN]]) pop() // 用于删除并 返回数组的最后一个元素 如果数组为空,返回undefined 语法: arr.pop() unshift() //返回新数组长度 shift() // 删除并 返回数组的第一个元素 如果数组为空,返回undefined 语法: arr.shift() sort() // 对数组的元素进行排序, 返回改变后的数组 语法: arr.sort([compareFunction]) 注意:compareFunction 指定定义排序顺序的函数。如果省略,则将数组元素转换为字符串,然后根据每个字符的Unicode代码点值进行排序。 reverse() // 用于颠倒数组中元素的顺序, 返回改变后的数组 语法: arr.reverse() splice() // 向数组中添加/删除/替换项目,返回删除的元素,如果仅删除一个元素,则返回一个元素的数组。如果没有删除任何元素,则返回一个空数组。 语法: array.splice(start[, deleteCount[, item1[, item2[, …]]]]) ES6 copyWithin() // 在当前数组内部,

js 实现双向绑定

左心房为你撑大大i 提交于 2020-01-25 01:02:10
双向绑定:视图更新时,数据会自动更新;数据更新时,也会触发视图更新。 下面这个例子参考了这篇博客: https://blog.csdn.net/q857637472/article/details/83060573 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <input type="text" id="input"> <button id="btn">修改数值</button> <script> /** * 将数据与DOM绑定 * @param {Object} obj 对象 * @param {string} attr keyname * @param {Object} el DOM对象 */ function defineProperty(obj,attr,el){ // 使用 Object.defineProperty Object.defineProperty(obj, attr, {