自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

年轻正好

不要害怕晚了,而是有没有开始做

  • 博客(121)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Egg框架应用Sequelize操作MySQL小结

Egg框架应用Sequelize操作MySQL小结

2022-01-11 11:42:54 1325 1

原创 Auto.js抓取移动端数据实战

事情是这样的,最近做闲鱼,就是在闲鱼上面卖拼多多的商品。把拼多多的商品上架到闲鱼,顾客下单后,就去拼多多用顾客的地址给下单购买。我以前也在想一个问题,同一个商品,拼多多的价格比闲鱼低得多,为啥还是有人在闲鱼上面买东西。首先大家都知道闲鱼是一个二手商品交易平台,上面的东西便宜,性价比又不错,自然深受很多人喜欢,比如我,也在闲鱼上面淘了一些使用的宝贝。当用户习惯使用某个app去购物的时候,他很少会与其它平台比价,信息差就这样诞生了。这就促生了"无货源一件代发"的模式。一、现实的需求呃,(⊙o⊙)…,跑

2021-08-28 10:48:59 6521

原创 前端常见跨域解决方案

什么是跨域?跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。广义的跨域:1、资源跳转: A链接、重定向、表单提交2、资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链3、脚本请求: js发起的ajax请求、dom和js对象的跨域操作等其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。什么

2021-08-28 10:37:11 323

原创 开源头像制作小程序

一、前言大家好!这是我第一个开源小作品——头像创作大师,欢迎大家体验。二、功能介绍目前小程序的挂件类型有口罩、圣诞节、姓氏和国旗,这些挂件是部署在我的服务器,大家可以长期使用。小程序主要有三块:首页、头像酷和个人中心。1、首页我把生成头像的功能封装成了一个组件,使用的时候,我们可以把背景图片传入组件。<mask-design :avatarPath="avatarPath" ref="maskDesign"></mask-design>添加挂件,绘制头像、保存头像等

2021-08-27 15:41:02 1081

原创 JavaScript中的闭包-终结篇

闭包,一个似曾相识的家伙,总是在面试中被问到。今天,就让我们来好好的总结一下闭包吧。一、什么是闭包在JavaScript中,根据词法作用域的规则,内部函数总是可以访问其外部函数声明的变量,当通过调用一个外部函数返回一个内部函数后,即使该外部函数已经执行结束了,但是内部函数引用外部函数的变量依然保存在内存中,就把这些变量的集合称为闭包。这段话有点绕。我的理解是,闭包就是能够读取其它函数内部变量的函数,它是连接函数内部和函数外部的一座桥梁,它同时含有对函数对象以及作用域对象引用的对象。闭包的实现也很简单

2021-07-22 23:54:43 321 1

原创 Axios如何取消重复请求

在实际开发中,我们需要对用户发起的重复请求进行拦截处理,比如用户快速点击提交按钮。对于重复的 get 请求,会导致页面更新多次,发生页面抖动的现象,影响用户体验;对于重复的 post 请求,会导致在服务端生成两次记录(例如生成两条订单记录)。无论从用户体验或者从业务严谨方面来说,取消无用的请求是需要避免的。一、一般处理方式我们可以在用户即将发送请求,但还未发送请求时给页面添加一个 loading 效果,提示数据正在加载,loading 会阻止用户继续操作。这种方式在大部分情况下是可行的,但是在某些

2021-07-06 22:27:17 900 1

原创 JavaScript 可选链操作符(?.)

可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空(null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。一、语法obj?.prop;obj?.[expr];arr?.[index];func

2021-07-06 22:26:01 627

原创 JavaScript语言基础速览

今天我们来总结一下 JavaScript 的基础语法,它是实现业务逻辑的基础。古人云:万丈高楼平地起,所以基础还是很重要的。一、变量和关键字ECMAScript 中无论时变量、函数还是操作符都是区分大小写的,你不能使用 typeof 作为函数名,但是 Typeof 是一个完全有效的函数名。我们使用的变量,函数,属性或函数参数的名称统一称为标识符,标识符的命名也有两个规则: 第一个字符必须是一个字母、下划线( _)或美元符号( $) 剩下的其他字符可以是字母、下划线、美元符号或数字

2021-04-28 09:45:24 186 1

原创 JavaScript的变量、作用域与内存

JavaScript 变量是松散的,变量不过是特定时间点的一个特定值的名称。由于没有规则定义变量必须包含什么数据类型,变量的值和数据类型在脚本生命期内可以改变。这样的变量很有意思,很强大,当然也有不少问题。一、原始值与引用值ECMAScript 变量包含两种不同类型的数据:原始值和引用值。原始值就是最简单的数据,引用值则是由多个值构成的对象。保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值,而引用值是保存在内存中的对象。由于 js 不允许直接访问内存位置,也就不能直接操作

2021-04-28 09:44:26 206

原创 HTML中的JavaScript

网页中的 JavaScript 能让页面完成复杂的逻辑交互,实现各种各样的功能需求,下面就让我们来了解一下 HTML 中的 JavaScript 吧。一、<script>元素将 JavaScript 插入 HTML 的主要方法是使用<script>元素,它有以下 8 个属性: 1、async:可选。表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其 他脚本加载。只对外部脚本文件有效。 2、 charset:可选。使用 src 属性指定的代码

2021-04-28 09:41:55 595

原创 8个有用的JavaScript单行程序

在实际开发中,同一个业务逻辑往往有不同的实现方式,不同的实现所产生的代码量以及所体现的思路不尽相同,越是精简的实现越能展现代码之美,逼格也会略胜一筹。下面就让我们来了解一下 JavaScript 常见的单行程序吧!1、随机 ID 生成现在,要你随机生成一个字符串,你该怎么办???能怎么办?就用下面这种方式实现咯:constrandomString=Math.random().toString(36).substring(2);console.log(randomString);//...

2021-04-28 09:39:39 93

原创 12个有用的JavaScript数组技巧

数组是Javascript最常见的概念之一,它为我们提供了处理数据的许多可能性,熟悉数组的一些常用操作是很有必要的。1、数组去重1、from()方法字符串或数值型数组的去重可以直接使用from方法。varplants=['Saturn','Earth','Uranus','Mercury','Venus','Earth','Mars','Jupiter'];varuniquePlants=Array.from(newSet(plants));console...

2021-04-28 09:38:32 130

原创 15个JavaScript优化技巧

一段精简的代码不仅能让人心情愉悦,而且也会让代码的逼格有所提升。一个优秀的产品往往需要一点一点的打磨才能脱颖而出,精简的代码是其中重要的组成部分。那么,就让我们来了解一下一些常见的优化代码的手段吧。1、多个条件判断数组includes方法用来判断是否包含某个元素,如果是返回 true,否则false。//longhandif(student==="Tom"||student==="Jack"||student==="Shanguagua"){//busine...

2021-04-28 09:37:07 391 1

原创 JavaScript常见报错及处理方法

实际开发中,我们经常会遇到一些报错,有些错误可以定位到具体行,通过自己的开发经验就能够修复,而有些报错并不是那么容易搞定,熟悉JavaScript常见的报错有助于更加快速的优化自己的业务。今天,我们就来整理一下常见的错误类型吧。常见的错误类型 Error: Error是基类型,其他的错误类型都是继承自该类型。 EvalError: 当函数eval()使用不正确的时候会抛出该错误,但是由于这个错误在不同浏览器中表现不一致,所以很少使用,也即很少遇到。 RangeError:当设置

2021-04-28 09:34:57 5516

原创 JavaScript判断对象是否为空对象的几种方法

判断是否为空对象在实际开发中很常见,今天就让我们来整理一下有哪些方法吧。1、空对象对应的字符串为 "{}"vardata={};varb=JSON.stringify(data)=="{}";console.log(b);//true2、for invarobj={};varb=function(){for(varkeyinobj){returnfalse;}returntrue;};console...

2021-04-28 09:30:50 33232 1

原创 JavaScript实现数组去重和数组扁平化的几种方法

数组去重是开发中经常会遇到的一个问题,不同的去重方案对实现难度、性能、代码优雅性有有所影响。数组的扁平化,实际开发中遇到的要少一些,但是它的实现思想值得我们去了解和熟悉。数组去重1、双循环去重双重for(或while)循环是比较笨拙的方法,它最能够体现去重的思想。实现的原理也很简单:先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对,如果不重复则添加到新数组中,最后返回新数组。因为它的时间复杂度是O(n^2),如果数组很长,是非常耗费

2021-04-28 09:28:20 369

原创 JavaScript中var,let,const的区别

实际开发中声明变量我们可以使用 var,let 和 const,不正确的使用它们会带来很多不必要的麻烦,今天就让我们来梳理一下这三者的区别吧。var 关键字var 声明的变量可以保存任何类型的值,在没有变量赋值的情况下,会保存一个特殊值 undefined。var 声明作用域使用 var 定义的变量会成为包含它的函数的局部变量。如使用 var 在一个函数内部定义一个变量,就意味着该变量将在函数退出时被销毁:functionStudent(){varname="山呱呱";...

2021-04-28 09:22:54 215

原创 node.js通过tedious连接SQLServer数据库方法封装

安装:npm install tediousvar Connection = require('tedious').Connection; var Request = require('tedious').Request; var connection = new Connection({ 'userName':'sa', //用户...

2017-04-10 11:49:45 4659 3

原创 如何实现1px边框

当手机DPR=2.0时,设置的1px实际上就变成了2px。所以我们就需要通过媒体查询来处理在不同DPR下的缩放以获取正确的1px像素。 .father { margin-bottom: 10px; border-bottom: 1px solid red; } .border-1px { position: relative; } .borde

2017-03-24 00:59:55 1882

原创 Vue中better-scroll插件的使用

实现原理:父容器固定高度,并设置属性overflow: hidden,使得子元素高度超出容器后能被隐藏。better-scroll作用在父容器上。1、npm安装better-scroll插件。npm install--save better-scroll2、在文件中引入better-scroll。import BScroll from 'better-scroll';用法:new

2017-03-18 23:55:13 35117 1

原创 【Mongoose】Mongoose增删改查

数据库连接:db.jsvar mongoose = require('mongoose');mongoose.connect('mongodb://localhost/DB/smallWeibo');var db = mongoose.connection;db.once('open', function (callback) { console.log("数据库成功打开");

2017-02-25 15:29:25 813

原创 配置安装Apache主服务发生错误:"(OS 5)拒绝访问。 : AH00369: Failed to open the Windows service manager, perh······ "

配置安装Apache主服务发生错误:(OS 5)拒绝访问。  : AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Adminstrator?具体情况:解决办法:打开cmd程序的时候以管理员身份运行就行了。

2017-02-16 17:38:11 1771

原创 搭建Apache服务器(配置)

选择非安装版本,直接解压即可。下载地址:http://pan.baidu.com/s/1pL6lSvx修改文件夹名字Apache,放在D盘根目录下。解压之后的文件目录:配置:1、找到D:\Apache\conf\httpd.conf文件,用记事本打开。找到:Define SRVROOT 这一项,将其右方的值改为你Apache所在位置。2、修改监听端口。目前监

2017-02-16 17:30:34 579

原创 [MongoDB]外部json数据导入MongoDB

注意:在mongoshell中是不能操作成功的!!!-db test  想往哪个数据库里面导入--collection restaurants  想往哪个集合中导入--drop 把集合清空--file primer-dataset.json  哪个文件

2017-02-10 12:29:31 4524 2

原创 GraphicsMagick报错:this most likely means the gm/convert binaries can't be found

var fs=require("fs"); var gm=require("gm"); gm("./public/imgs/pool.jpg").resize(50,50).write("./public/imgs/pool2.png",function (err) { if(err){ console.log(err); } })

2017-01-30 23:47:03 2063

原创 throw er; Unhandled 'error' event

是运行WebStorm时出现的,后来发现我已经通过命令行运行啦相同的文件,所有就造成啦端口冲突。把命令行关掉就可以啦~~~

2017-01-02 20:02:21 961

原创 Ajax

mui提供了mui.ajax方法,并在mui.ajax方法基础上,进一步简化出最常用的mui.get()、mui.getJSON()、mui.post()三个方法。使用mui.ajax方法很简单。进行相关配置,填写请求地址,然后在success中对返回数据的解析和渲染。mui.ajax('http://server-name/login.php',{ data:{ username:

2016-12-01 09:33:40 402

原创 页面传值

为简化开发,mui框架在evalJS方法的基础上,封装了自定义事件,通过自定义事件,用户可以轻松实现多webview间数据传递。大致过程是这样的:1、首先在子页面中添加自定义事件window.addEventListener('customEvent',function(event){ //通过event.detail可获得传递过来的参数内容 ....

2016-12-01 09:23:33 382

原创 上拉刷新和下拉加载

上拉刷新和下拉加载都是由主容器和子容器组成。子容器在父容器中运动。在父容器中预加载子容器,然后在子容器中初始化预加载参数。注意:为了保证IOS和Android平台的一直性,统一采用相同的Dom结构!主页面~~~ /** * 下拉刷新和上拉加载都由两个webview组成 */ //启用双击监听 mui.init({ /*开启双击手势*/ gestur

2016-11-30 23:44:51 620

原创 屏幕Gif图片制作

下载地址http://screentogif.codeplex.com/ 使用方便简单

2016-11-21 00:24:52 491

原创 sublime text3使用总结

安装package control组件1

2016-11-20 17:06:42 2692

原创 WAMPServer自拟定端口号

有时候,WAMPServer安装好了,但是启动不了。很可能是由于端口冲突。Apache默认使用80端口,如果在启动Apache之前80端口被其它程序占用,那么Apache就可能启动失败。这种情况下我们就可以把Apache默认的80端口改为没有被占用的端口。开httpd.conf配置文件,修改监听端口第一步~~~打开httpd.conf配置文件,修改监听端口(修改两个位置)第二步

2016-11-19 01:41:58 546

原创 WAMPServer多站点配置

如何使用一个web应用程序管理和运行多个网站或项目~~~第一步~~~修改wamp的虚拟配置文件打开httpd-vhosts.conf,参考范例样式,复制两个站点信息。参数说明~~~ServerAdmin~~~设置管理员邮箱地址DocumentRoot~~~文件的目录,即网站的代码ServerName~~~主机名ErrorLog~~~错

2016-11-19 01:15:30 399

原创 WAMPServer自定义网站根目录

WAMP:Windows,Apache,MySQL,PHP.测试安装完成:在浏览器输入localhost后,显示wamp服务信息.自定义网站根目录:让服务器找到自定义文件夹下面的网站。rddddss

2016-11-18 23:20:59 662

原创 MUI——创建页面的三种方法

第一种:初始化时,使用mui.init()创建子页面一般情况下,目标页面分为主页面和内容页,两者是组合在一起的。在主页面中写好主页面的结构,就可以在初始化时创建子页面了。mui.init({ subpages:[{ url:your-subpage-url,//子页面HTML地址,支持本地地址和网络地址 id:your-subpage-id,//子页面标

2016-11-15 01:32:07 19303

原创 [网络编程]——TCP_Socket通信_聊天室_客户端多线程.初步形成

/** * 创建服务器,加入多线程 * 写出数据:输出流 * 读取数据:输入流 * @author Administrator * *//** * 创建服务器 * 写出数据:输出流 * 读取数据:输入流 * @author Administrator *//数据的发送 线程public class send implements Runnable{ private Bu

2016-04-19 00:44:37 1181

原创 [网络编程]——TCP_Socket通信_聊天室_客户端多线程

工具类:public class CloseUtil { public static void closeAll(Closeable...io){ for(Closeable temp:io){ if (temp!=null) { try { temp.close(); } catch (IOException e) { // TODO Auto-g

2016-04-17 00:04:50 1119

原创 [网络编程]——网络编程_TCP_Socket通信_聊天室.雏形

聊天室雏形:/** * 创建客户端:发送数据+接收数据 * 写出数据:输出流 * 读取数据:输入流 * 输入流和输出流在同一个线程楼内,应该彼此独立 * @author Administrator * */public class Client { public static void main(String[] args) throws UnknownHostExcept

2016-04-16 20:34:37 431

原创 [网络编程]——网络编程_TCP_Socket通信

建立服务器与客户端的连接/** * 创建服务器 * @author Administrator * */public class server { public static void main(String[] args) throws IOException { ServerSocket sever=new ServerSocket(7897); Socket socket

2016-04-16 20:19:19 335

原创 [网络编程]——UDP

/** * 客户端 * 1、创建客户端+端口 * 2、准备数据 * 3、数据打包(发送的地点及端口) * 4、发送 * 5、释放 * 非面向连接 服务器没有打开,发送数据 可能会造成数据丢失 * @author Administrator * */public class MyClient { public static void main(String[] args)

2016-04-14 00:40:36 330

Mark Man破解版

官方的免费版本不能保存已经修改过的文件,这个可以哦......

2017-07-04

由浅入深学Java—基础、进阶与必做260题(jb51.net)

学习JAVA的好资料!对于初学者来说是不可多得的好书。

2016-02-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除