js

Arcgis使用本地js和css的方法

我怕爱的太早我们不能终老 提交于 2020-02-27 20:16:47
默认的情况下,arcgis会使用官网的js和css样式,加载会很忙,地图有时候会因为js文件请求超时而加载不到,特别影响体验,所以很有必要将js文件打包到项目中来使用; 1.官网下载对应的js包 2.放到content目录下面,如图所示 3.修改js中的路径地址 修改两个js中的地址为相对路径,之前应该[HOSTNAME_PATH]啥的吧,不记得了;修改成相对路径 4.在使用module之前,通过loadScript加载dojo.js即可 5.修改css的引用地址 如果不加载css,会导致部分样式显示有问题,比如点击图标的时候上面的图层显示不出来;修改如下所示 ok,到这里基本就结束了,你会发现加载速度嗖嗖的了; 来源: CSDN 作者: xiaoguangtouqiang 链接: https://blog.csdn.net/xiaoguangtouqiang/article/details/104540856

前端验证,JQuery AJAX

非 Y 不嫁゛ 提交于 2020-02-27 18:37:15
尽量 不要使用,影响效率 给form表单设id nice-validator是一款前端校验插件,引入插件 < script type = "text/javascript" src = "view/static/js/jquery.js" > < / script > < script type = "text/javascript" src = "view/static/js/jquery.validator.min.js" > < / script > < script type = "text/javascript" src = "view/static/js/zh-CN.js" > < / script > $ ( function ( ) { $ ( '#myForm' ) . validator ( { rules : { //自定义remote规则(注意:虽然remote规则已经内置,但这里的remote会优先于内置)通过后台验证 //验证账号是否存在,ajax后台验证 remote : function ( element ) { /* alert(element.name); alert(element.value); */ return $ . ajax ( { url : 'assertionStaff' , type : 'post' , data :

JS-重写内置的call、apply、bind

情到浓时终转凉″ 提交于 2020-02-27 17:29:33
首先看call和apply,第一个参数就是改变的this指向,写谁就是谁,如果是非严格模式下,传递null或undefined指向的也是window,二者唯一的区别是执行函数时,传递的参数方式不同,call是一个个的传递,apply是把需要传递的参数放到数组中整体传递。   ·func.call([context], x, y)   ·func.apply([context], [x, y]) 再看bind,它和call和apply都是改变this并且传递一些参数,不同于call和apply在改变this的同时直接把函数就执行了,bind不会立即执行函数。 let obj = { fn(x, y) { console.log(this, x, y); } }; obj.fn.call({}, 10, 20); // {}, 10, 20 obj.fn.apply(window, [10, 20]); //window, 10, 20 setTimeout(obj.fn.bind(30, 10, 20), 1000); //Number(30), 10, 20 先试着重写一下bind: 从参数看,首先是传递一个this指向并需要做一下处理,后续还有若干个参数 function bind(context) { //context可能是null或undefined,需要处理一下 if

【Python3爬虫】一次应对JS反调试的记录

天大地大妈咪最大 提交于 2020-02-27 17:28:51
一、前言简介   在前面已经写过关于 JS 反调试的博客了,地址为: https://www.cnblogs.com/TM0831/p/12154815.html 。但这次碰到的网站就不一样了,这个网站并不是通过不断调试消耗内存以反调试的,而是直接将页面替换修改掉,让人无法调试页面。    二、网页分析   本次爬取的网址为: https://www.aqistudy.cn/ ,但打开开发者工具后,页面变成了下面这样:      很明显这是触发了反爬,页面直接被替换掉了。当我们打开开发者工具时,程序检测到了开发者工具被打开了,所以触发反爬,将页面修改成了上面的样子。   页面被修改了,我们就没办法了吗?自然是有对策的,我们可以查看一下网页源码,在开发者工具中切换到 Source 选项,找到首页 index 的源码,如下图:      往下翻找,可以找到如下内容,可以看到在 endebug() 方法中就是修改页面的代码:      通过查看上面的代码可以发现,debugflag 就是判断条件,而 loadTad() 则是获取数据的接口,当程序检测到开发者工具被打开时,debugflag 的值改为 true,endebug() 函数执行,页面也就被修改掉了。   那么 endebug() 方法的具体内容是什么呢?全局搜索“endebug”,可以找到一个 JavaScript 文件

js 函数重载

回眸只為那壹抹淺笑 提交于 2020-02-27 17:23:02
/*给某个对象添加方法的函数*/ function addMethod(object, name, fn) { var old = object[name]; //第一次old是 undefined object[name] = function() { //如果调用函数的参数长度等于fn的参数长度,那就返回当前函数 if (fn.length == arguments.length) { return fn.apply(this, arguments); } else if (typeof old == 'function') { //如果当前的调用不匹配那么调用上一次的old,直到匹配为止 return old.apply(this, arguments); } } } 来源: oschina 链接: https://my.oschina.net/xiehou/blog/3176121

js 大文件分片上传处理

可紊 提交于 2020-02-27 15:28:06
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 首先是文件数据接收逻辑,负责接收控件上传的文件块数据,然后写到服务器的文件中。控件已经提供了块的索引,大小,MD5和长度信息,我们可以根据需要来灵活进行处理,也可以将文件块的数据保存到分布式存储系统中。 文件初始化部分 第一步:获取RandomAccessFile,随机访问文件类的对象 第二步:调用RandomAccessFile的getChannel()方法,打开文件通道 FileChannel,这块逻辑可以优化,如果以后有分布式存储需求,可以改为分布式存储,减轻单台服务器的压力。 第三步:获取当前是第几个分块,计算文件的最后偏移量 第四步:获取当前文件分块的字节数组,用于获取文件字节长度 第五步:使用文件通道FileChannel类的 map()方法创建直接字节缓冲器 MappedByteBuffer 第六步:将分块的字节数组放入到当前位置的缓冲区内 mappedByteBuffer.put( byte [] b); 第七步:释放缓冲区 第八步:检查文件是否全部完成上传 文件夹扫描类 存储路径生成类

js 预编译

落花浮王杯 提交于 2020-02-27 15:02:42
js 运行代码的时候分为几个步骤: 语法分析 ==》 预编译 ==》 解释执行 语法解析: 通篇扫描代码,查看语法是否出错 解释执行 : 读一行 - 解释一行 - 执行一行 预编译执行的操作: // 假设之前并没有定义a console.log(a); 打印结果: Uncaught ReferenceError: a is not defined 这个大家应该都知道: 在变量未定义时就对变量进行访问就会报错(typeof 列外) 再看一个例子: 1 // 假设之前并没有定义变量a 2 console.log(a); 3 4 var a = 123; 5 6 console.log(a); 看上面代码会打印什么?会不会报错? 打印结果: undefined 123 为什么这个没有报错:因为在预编译的时候对变量进行了提升即 变量提升。 定义的变量的声明(var a ;)被提到了代码块的最前面,变量的赋值操作(a = 123)没有变化。 所以被编译后就相当于 1 // 假设之前没有定义变量a 2 var a; 3 4 console.log(a); 5 6 a = 123; 7 8 console.log(a); 看下面这个例子: 1 // 假设之前没有定义test 2 console.log(test); 3 4 var test = 123; 5 6 function test ()

js文件分片上传,断点续传

痴心易碎 提交于 2020-02-27 14:27:20
核心原理: 该项目核心就是文件分块上传。前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。 * 如何分片; * 如何合成一个文件; * 中断了从哪个分片开始。 如何分,利用强大的js库,来减轻我们的工作,市场上已经能有关于大文件分块的轮子,虽然程序员的天性曾迫使我重新造轮子。但是因为时间的关系还有工作的关系,我只能罢休了。最后我选择了百度的WebUploader来实现前端所需。 如何合,在合之前,我们还得先解决一个问题,我们如何区分分块所属那个文件的。刚开始的时候,我是采用了前端生成了唯一uuid来做文件的标志,在每个分片请求上带上。不过后来在做秒传的时候我放弃了,采用了Md5来维护分块和文件关系。 在服务端合并文件,和记录分块的问题,在这方面其实行业已经给了很好的解决方案了。参考迅雷,你会发现,每次下载中的时候,都会有两个文件,一个文件主体,另外一个就是文件临时文件,临时文件存储着每个分块对应字节位的状态。 这些都是需要前后端密切联系才能做好,前端需要根据固定大小对文件进行分片,并且请求中要带上分片序号和大小。前端发送请求顺利到达后台后,服务器只需要按照请求数据中给的分片序号和每片分块大小(分片大小是固定且一样的)算出开始位置,与读取到的文件片段数据,写入文件即可。 为了便于开发,我 将服务端的业务逻辑进行了如下划分,分成初始化

js各继承方法的优缺点

核能气质少年 提交于 2020-02-27 10:58:06
在js中有很多种继承的方法,下面总结这些方法的优缺点。 ####1.原型链继承 优点: 非常纯粹的继承关系,实例是子类的实例,也是父类的实例 父类新增原型方法/原型属性,子类都能访问到 简单,易于实现 缺点: 要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中 无法实现多继承 来自原型对象的引用属性是所有实例共享的创建子类实例时,无法向父类构造函数传参 ####2.构造继承 忧点: 解决了子类实例共享父类引用属性的问题 创建子类实例时,可以向父类传递参数 可以实现多继承(call多个父类对象) 缺点: 实例并不是父类的实例,只是子类的实例 只能继承父类的实例属性和方法,不能继承原型属性/方法 无法实现函数复用,每个子类都有父类实例函数的副本,影 大专栏 js各继承方法的优缺点 响性能 ####3.实例继承 优点: 不限制调用方式,不管是new 子类()还是子类(),返回的对象具有相同的效果 缺点: 实例是父类的实例,不是子类的实例 不支持多继承 ####4.拷贝继承 优点: 支持多继承 缺点: 效率较低,内存占用高(因为要拷贝父类的属性) 无法获取父类不可枚举的方法(不可枚举方法,不能使用for in 访问到) ####5.组合继承 特点: 可以继承实例属性/方法,也可以继承原型属性/方法 既是子类的实例,也是父类的实例

求助!js无法获取<textarea></textarea>中的值

♀尐吖头ヾ 提交于 2020-02-27 10:57:01
< ! DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta http - equiv = "Content-Type" content = "text/html; charset=UTF-8" / > < title > Get weather information ( GWI ) < / title > < style > #testarea { margin : 0 px ; width : 1541 px ; height : 404 px ; } #submit { height : 12 px ; width : 6 px ; } < / style > < / head > < body > <?php require ( 'functionDefine.php' ) ; $requestKey = array ( array ( //www.heweather.com array ( 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' ,