仰望星空的代码

博客旨在交流.NET、web前端、微信小程序等技术。以实际开发过程中遇到的问题为主,注重技术在真实项目中的实践应用。
私信 关注
仰望星空的代码
码龄9年

专注Web前端和微信小程序开发。

  • 1,324,649
    被访问量
  • 207
    原创文章
  • 3,964
    作者排名
  • 250
    粉丝数量
  • 于 2012-07-03 加入CSDN
获得成就
  • 博客专家认证
  • 获得238次点赞
  • 内容获得156次评论
  • 获得386次收藏
荣誉勋章
兴趣领域
  • #前端
    #Vue.js#HTTPS#TypeScript#CSS#前端框架#Node.js#ECMAScript 6#React.js#小程序#JavaScript#WebPack
TA的专栏
  • 前端进阶学习笔记
    付费
    19篇
  • C#知识点的实践应用
    付费
    17篇
  • Vue.js踩坑记
    付费
    12篇
  • 微信小程序最佳实践
    付费
    10篇
  • 开发运维
    付费
    22篇
  • 各类地图接入使用实战
    3篇
  • React.js
    1篇
  • .NET Core
    2篇
  • JavaScript/JQuery
    20篇
  • ECharts
    1篇
  • SQL
    17篇
  • ASP.NET MVC
    23篇
  • 网络通信
    1篇
  • ASP.NET webForm
    19篇
  • C#语言
    35篇
  • Html+CSS
    2篇
  • Linq
    7篇
  • 架构设计
    1篇
  • WCF
    7篇
  • Visual Studio
    6篇
  • Redis
    1篇
  • CentOS
    1篇
  • 支付
    1篇
  • WinForm
    23篇
  • NHibernate
    3篇
  • NVelocity-VTL
    1篇
  • JavaScript 高级程序设计(第3版)学习笔记
    20篇
招聘
岗位:前端开发
有想换工作的朋友欢迎砸简历过来!
QQ群:191695206
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

可以监听长按事件,阻止长按的默认事件。

回答的问题 #微信环境里的H5链接生成的二维码,如何判断用户是长按识别进入,还是摄像头扫描二维码进入的?
回答了问题于 1 月前

console.log采用的是UTF-8编码,你的页面显示的内容可能采用的不是UTF-8编码,页面还能正常显示,是因为浏览器有自动根据页面内容选择支持的编码方式的

回答的问题 #IE浏览器显示没有问题,js控制台打印乱码
回答了问题于 1 月前

可以在电脑开WiFi热点,手机连上WiFi,然后在电脑端开启抓包工具,分析各个请求接口和页面地址

回答的问题 #如何获取 美团生鲜个人CPS H5 url
回答了问题于 1 月前

把完整代码贴一下

回答的问题 #小程序编译出错,求大佬指点
回答了问题于 1 月前

移动端H5实现手动选择地图点的一种解决方案

一、准备文中所用地图应用为高得地图v1.4.15版,代码开发环境为Vue.js框架+webpack+node.js。二、需求移动端H5实现类似打车软件中在地图界面手动选择目的地功能。这里面有两个关键点是必须要解决的:1、如何实现地点标记在地图上移动进行选点,2、如何实现获取到点标记图标选择的点的坐标(经纬度)。三、解决方案首先来解决第一个问题。在打车软件中我们选择地图中的点的时候看似是选择图标在地图界面上移动,其实我们也可以反过来看,如果选择图标固定不动,手指移动的是地图,那么效果也
原创
61阅读
0评论
0点赞
发布博客于 1 月前

高德地图坐标拾取组件

// 高德地图坐标拾取 param point 位置展示 如'114.424314,30.606697' getPoint选择位置返回坐标字符串<template> <div class="map-wrapper"> <div :id="id" class="container"> <div v-show="isShow" class="info"> <input id="tipInput" type="tex.
原创
187阅读
0评论
0点赞
发布博客于 1 月前

web端与移动端高德地图接入及实例化

web端和移动端H5接入高德地所需要的步骤以及加载高德地图的方式和加载完成后的实例化。
原创
111阅读
1评论
0点赞
发布博客于 1 月前

有可能是缩放问题,看一下sale的配置

回答的问题 #关于html2canvas生成图片空白问题
回答了问题于 1 月前

你给的链接里面,页面使用了这些框架或者js库

回答的问题 #哪个攻城狮,能实现这样的3d前端页面? 速求(连接在下面)
回答了问题于 1 月前

系统盘文件要求权限较高,可以考虑把需要操作的文件夹及文件放到除C盘和D盘以外的盘。

回答的问题 #nodejs中使用child_process模块遇到权限问题
回答了问题于 1 月前

截图中的错误信息已经提示了,是你的webpack配置不正确,其中应该是关于别名的配置有问题,可能是配置属性拼写错误,当前写的是“alia”,看看webpack配置中的别名配置项,属性名是不是拼写错了。

回答的问题 #vue脚手架3 npm run serve出现问题 跪求解决
回答了问题于 1 月前

可以下载腾讯电脑管家,安装完成后在工具中找到文件粉碎,安装完成后,右键点击需要删除的文件夹,选择删除文件。

回答的问题 #Windows10 文件夹无法删除
回答了问题于 1 月前

不知道你的H5页面是在哪里运行的,如果是正常的浏览器是没有问题的,如果是微信内部或者webview内部,建议用户信息和token等别放在cookie中,因为这两个环境不支持cookie,可以storage进行存储,发起请求时放到header中。

如果请求发生了跨域,一般情况下,即使有cookie也不会被携带。

回答的问题 #uniapp在h5环境不携带cookie
回答了问题于 1 月前

【应用场景解析】性能优化指标和方式

为了不断提升用户体验,前端工程师往往会对页面性能不断改进,而这个改进的过程就叫性能优化。一、性能指标什么是性能?性能是指程序的运行速度,而前端性能是指页面的响应速度,提到速度必然离不开一个变量,那就是时间。所以我们会看到性能指标都是以时间为单位来测量的。前端性能的指标有很多,本文从是否可以通过浏览器采集上报,是否由权威组织或大型公司提出,以及是否严重影响用户体验这 3 个方面考虑,选取了下面一些重要的指标。1、首屏绘制(First Paint,FP)首屏绘制由 W3C 标准 Paint
原创
118阅读
0评论
0点赞
发布博客于 6 月前

【应用场景解析】合理搭建前端项目

前端项目搭建并不只是使用构建工具这么简单,我们将从项目组织、代码规范 2 个方面来进行分析。一、项目组织考虑这样一个场景,在开发项目 projectA 的时候,发现其中的 codeX 也可以用于项目 projectB,最简单直接的处理方式就是把 codeX 的代码直接复制到 projectB 下,按照“三次原则”(三次原则是指同一段代码被使用到 3 次时再考虑抽象)这种处理方式没什么问题。但如果此时项目 projectC 和 projectD 也会用到 codeX,那么这种方式维护起来会很麻烦。
原创
85阅读
0评论
0点赞
发布博客于 6 月前

【应用场景解析】组件通信的状态管理

通过组件化的方式能够有效地将 Web 页面进行解耦,但另一个问题也随之出现,组件之间如何进行通信。我们就来分析组件化 Web 应用中的组件通信问题。一、全局状态对于父子组件通信,框架都已给出可行的解决方案:父组件通过 prop(s) 属性向子组件传参,子组件通过自定义事件来向父组件发送消息。而非父子组件之间,如果通过层层传递,这个过程就会变得相当麻烦。最简单的直接解决方式就是设置一个供多个组件共享的全局变量,但如果直接使用全局变量会存在一些问题,比如:可能多个组件会同时修改变量值,这个过程...
原创
76阅读
0评论
0点赞
发布博客于 6 月前

【应用场景解析】前端路由实现

当浏览器地址栏中的 URL 发生变化时,会请求对应的网络资源,而负责响应这个网络资源的服务就称为路由。在早期的 Web 开发中,路由都是交由服务端处理,但随着前端技术的快速发展,路由模块逐渐转移交给了前端进行控制,而路由转移到前端,正是前后端分离和单页应用架构 的 基石。一、前端路由实现基础默认情况下,当地址栏的 URL 发生变化时,浏览器会向服务端发起新的请求。所以实现前端路由的重要基础就是在修改 URL 时,不引起浏览器向后端请求数据。根据浏览器提供的 API,有下面两种实现方案。1、基于
原创
79阅读
0评论
0点赞
发布博客于 6 月前

【核心基础知识】前后端通信——API设计规范

前后端通信的重要协议是 HTTP,但在实际通信场景中,光有协议是不够的。假设有下面的 GET 请求,返回结果是用户列表数据。GET https://a.com/a对于浏览器而言,可以通过头部字段 Content-Type 轻松判断出来,然后进行对应的逻辑处理。但对于工程师而言是不可读的,不知道 /a 代表什么。解决这个问题的方法就是制定一种规范,让请求具有语义化,这种规范就是我们常说的 API 设计规范。下面就来介绍前后端通信中出现过的 3 种 API 规范。一、RPC—远程过程调用RP
原创
115阅读
0评论
0点赞
发布博客于 6 月前

【核心基础知识】浏览器同源策略与跨域方案

一、浏览器的同源策略(Same Origin Policy)源(Origin)是由 URL 中协议、主机名(域名 domain)以及端口共同组成的部分。如果两个 URL 的源相同,我们就称之为同源。不同源的情况有以下几种:协议不同。比如:http://www.baidu.com与https://www.baidu.com,http与https协议不同。 主机名不同。比如:http://www.baidu.com与http://sp2.baidu.com。如果是ip地址也是同理。 端口不同。比
原创
65阅读
0评论
0点赞
发布博客于 6 月前

【核心基础知识】浏览器缓存

想要加快浏览器加载网络资源的速度,可以通过减少响应内容大小,比如使用 gzip 算法压缩响应体内容和 HTTP/2 的压缩头部功能;另一种更通用也更为重要的技术就是使用缓存。Web 缓存按存储位置来区分,包括数据库缓存、服务端缓存、CDN 缓存和浏览器缓存。浏览器缓存的实现方式主要有两种:HTTP 和 ServiceWorker 。一、HTTP缓存使用缓存最大的问题往往不在于将资源缓存在什么位置或者如何读写资源,而在于如何保证缓存与实际资源一致的同时,提高缓存的命中率。也就是说尽可能地让浏览
原创
59阅读
0评论
0点赞
发布博客于 6 月前

加qq,给你远程吧

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

不使用--mod moden试试

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

使用vue-cli构建的项目吗,构建时使用--mod moden了吗

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

编译前的代码看一下

编译后的看不懂阿


回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

登录的时候执行了哪些js代码,逐一排查一下

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

可以引入babel polyfill来解决

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

语法错误,应该是使用了ES6或更高版本的语法导致编译后ie不支持

回答的问题 #vue项目在IE游览器和qq游览器上页面可以正常显示
回答了问题于 6 月前

【核心基础知识】HTTP协议的各个版本的特性与差异

HTTP(HyperText Transfer Protocol,超文本传输协议)是浏览器与服务端之间最主要的通信协议一.HTTP/0.91991 年 HTTP 正式诞生,当时的版本是 0.9,从名字可以看出,该协议的作用是传输超文本内容 HTML。协议定义了客户端发起请求、服务端响应请求的通信模式。请求报文内容只有 1 行,为 GET 加上请求的文件路径。服务端收到请求后返回一个以 ASCII 字符流编码的 HTML 文档。HTTP/0.9 通信示意图如图.二.HTTP/1.0随着
原创
92阅读
0评论
0点赞
发布博客于 6 月前

【核心基础知识】认识浏览器的javascript引擎

JavaScript 引擎的编译过程大体上,可分为解析、解释和优化 3 个步骤。下面就以 V8 引擎为例。一.编译过程1.解析解析步骤又可以拆分成 2 个小步骤:词法分析,将 JavaScript 代码解析成一个个的令牌(Token); 语法分析,将令牌组装成一棵抽象的语法树(AST)。下面是一段简单的代码,声明了一个字符串变量并调用函数 console.log 进行打印。var name = 'web'console.log(name)通过词法分析会对这段代码逐个字符进行解
原创
51阅读
0评论
0点赞
发布博客于 6 月前

【核心基础知识】模块化的模块规范和实现方式

作为前端开发者或许早已习惯了在开发组件时使用 import 和 export 来管理代码模块,在编写 Node.js 服务时通过 require 和 module.exports 来复用代码。但 JavaScript 模块化之路充满了坎坷,JavaScript 模块发展史上有很多著名的模块规范与实现。一、ES6模块目前最主流的模块化方案应该是 ECMAScript 2015 提出的模块化规范(也称“ES6 模块”),这个规范同时适用于 JavaScript 的前后端环境。1、定义和引用.
原创
66阅读
0评论
0点赞
发布博客于 7 月前

linux安装微信

一.准备1.安装wine,可参考:https://wiki.winehq.org/Download_zhcn2.安装winetricks,安装成功后,如图,其中winetricks-zh可以忽略.3.设置32位wine环境,可参考:https://www.kutu66.com/ubuntu/article_1568414.安装必要的windows的dll,组件,字体.需要安装的dll: d3dcompiler_43 d3dx9_24到d3dx9_43 d3dx9 d9vk dinpu
原创
1438阅读
0评论
3点赞
发布博客于 7 月前

linux中安装微信开发者工具

微信开发者工具是微信小程序官方指定的开发工具,但是微信官方没有推出Linux版本,幸好很多牛人自己制作了能够在Linux中运行的微信开发者工具版本。该文中便是采用github中开源的linux版开发者工具。一、准备安装前需要下载或者克隆开发者工具源码,地址:...
原创
270阅读
0评论
0点赞
发布博客于 7 月前

Fedora安装anydesk后无法远程连接解决

电脑系统为Fedora,安装anydesk后能够远程连接其他已经安装了anydesk的电脑,但是其他电脑无法远程连接该电脑,同时无法设置自主访问,点击解锁安全设置后弹出了让输入密码的对话框,输入密码后无任何反应。一、解锁安全设置无法解锁安全设置,anydesk的高级功能是无法使用的,所以必须想办法解锁安全设置。步骤如下。1、打开终端2、输入sudoanydesk命令,anydesk被打开,设置的安全项可以进行设置了3、设置需要自定义的项这里会出现一个问题,设置自主访问项时输入访...
原创
421阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】Promise的常用场景

一、异步串行将异步转化为串行执行的基本实现方式。异步函数 asyncF1 和 asyncF2,且 asyncF2 依赖 asyncF1 的返回结果执行。使用 Promise 提供的 then 函数可以直接实现,代码如下。asyncF1().then(data => asyncF2(data)).then(() => { ...}).catch(e => console.error(e))如果使用 async/await 可以摆脱链式调用,代码可读性更好:
原创
91阅读
0评论
0点赞
发布博客于 7 月前

微信小程序超长页面生成截图的一种解决方案

在微信小程序页面生成图片
原创
2558阅读
0评论
4点赞
发布博客于 7 月前

【核心基础知识】函数、原型、作用域

数据类型与函数是很多高级语言中最重要的两个概念,前者用来存储数据,后者用来存储代码。JavaScript 中的函数相对于数据类型而言更加复杂,它可以有属性,也可以被赋值给一个变量,还可以作为参数被传递......正是这些强大特性让它成了 JavaScript 的“一等公民”。下面我们就来详细了解函数的重要特性。一、this关键字什么是 this?this 是 JavaScript 的一个关键字,一般指向调用它的对象。这句话其实有两层意思,首先 this 指向的应该是一个对象,更具体地说是函数执行
原创
68阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】javascript的数据类型

JavaScript 的数据类型可以分为 7 种:空(Null)、未定义(Undefined)、数字(Number)、字符串(String)、布尔值(Boolean)、符号(Symbol)、对象(Object)。其中前 6 种类型为基础类型,最后 1 种为引用类型。这两者的区别在于,基础类型的数据在被引用或拷贝时,是值传递,也就是说会创建一个完全相等的变量;而引用类型只是创建一个指针指向原有的变量,实际上两个变量是“共享”这个数据的,并没有重新创建一个新的数据。一、UndefinedUndefi
原创
52阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】浏览器渲染页面的流程

假设我们在浏览器中输入了一个网址,得到了下面的 html 文件,渲染引擎是怎样通过解析代码生成页面的呢?<html> <head> </head> <body> CSDN </body></html>一、从HTML到DOM1、字节流解码对于上面的代码,我们看到的是它的字符形式。浏览器通过 HTTP 协议接收到的文档内容是字节数据,下图是抓包工具截获的报文截图,报文内容为左侧高亮显示的区域(为...
原创
66阅读
0评论
0点赞
发布博客于 7 月前

解决微信小程序长页面滚动到底部点击底部的输入框后输入框漂浮且页面滚动到顶部

一、问题描述项目中有一个长页面上部展示部分信息下部为信息录入,页面长度为三屏幕(不同手机屏幕大小略有差异),当滚动到第二屏或者第三屏去填写信息时点击输入框后输入框漂浮起来了并且页面向上滚动了一段距离,回到了第一屏中展示的内容。效果如图。滚动到第二屏,证件号输入。点击输入框可以看到证件号输入框漂浮了起来并且页面滚动到了第一屏展示的内容。注意:小程序是2018年上线,在2020年4月份之前该页面从未出现过这种现象。推测:微信的后续更新中对微信小程序基础库进行了重构,导致点击输入框后页
原创
596阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】如何管理CSS代码

尽管 CSS 提供了 import 命令支持文件引用,但由于其存在一些问题(比如影响浏览器并行下载、加载顺序错乱等)导致使用率极低。更常见的做法是通过预处理器或编译工具插件来引入样式文件。将样式文件进行分类,把相关的文件放在一起,让工程师在修改样式的时候更容易找到对应的样式文件,在创建样式文件的时候更容易找到对应的目录。管理样式文件的目的就是为了让开发人员更方便地维护代码。一、开源项目中的样式文件先来看看著名的 UI 相关的开源项目是怎么管理样式文件的。(1)Bootstrap:https:
原创
81阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】CSS的关键:布局

通常提到的布局,有两个共同点:大多数用于 PC 端,因为 PC 端屏幕像素宽度够大,可布局的空间也大; 布局是有限空间内的元素排列方式,因为页面设计横向不滚动,纵向无限延伸,所以大多数时候讨论的布局都是对水平方向进行分割。我们在讨论布局的时候,会把网页上特定的区域进行分列操作。按照分列数目,可以大致分为 3 类,即单列布局、两列布局、三列布局。一、单列布局单列布局是最常用的一种布局,它的实现效果就是将一个元素作为布局容器,通常设置一个较小的(最大)宽度来保证不同像素宽度屏幕下显示一致。一
原创
71阅读
0评论
0点赞
发布博客于 7 月前

前端代码规范最佳实践

以下文章来源于全栈成长之路,作者山月行。一千个读者,就有一千个哈姆雷特。一千个程序员,就有一千种代码风格。那什么是代码风格呢?从小的来说,有的开发喜欢带分号,有的不喜欢带分号。有的喜欢使用空格,有的喜欢使用 Tab。有的喜欢空两个空格,有的喜欢四个空格。除了这些,还有一些关于代码的优化,如避免声明未使用,避免冗余的代码逻辑等。如果你是新参加工作的人员,又恰好遇到一个代码风格混乱...
转载
76阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】3个场景的DOM事件处理

一、防抖在一段时间内能够多次触发并且在最后一次触发才是能够得到完整结果的事件可以使用防抖来防止事件处理函数的多次执行以提升体验和性能。比如:有一个搜索输入框,为了提升用户体验,希望在用户输入后可以立即展现搜索结果,而不是每次输入完后还要点击搜索按钮。一种实现方式应该很容易想到,那就是绑定 input 元素的input事件,然后在监听函数中发送 AJAX 请求。这样的实现很容易造成性能问题。比如一个词需要输入四次那么就会发送四次ajax请求。其实只有最后一次才是用户想要输入的完整内容,前面三次的查
原创
63阅读
0评论
0点赞
发布博客于 7 月前

【核心基础知识】高效的操作DOM元素,避免性能陷阱

为什么说 DOM 操作耗时?要解释 DOM 操作带来的性能问题,我们不得不提一下浏览器的工作机制。一、浏览器的工作机制1、线程切换浏览器包含渲染引擎(也称浏览器内核)和 JavaScript 引擎,它们都是单线程运行。单线程的优势是开发方便,避免多线程下的死锁、竞争等问题,劣势是失去了并发能力。浏览器为了避免两个引擎同时修改页面而造成渲染结果不一致的情况,增加了另外一个机制,这两个引擎具有互斥性,也就是说在某个时刻只有一个引擎在运行,另一个引擎会被阻塞。操作系统在进行线程切换的时候需要保存上
原创
109阅读
0评论
0点赞
发布博客于 9 月前

【核心基础知识】你不知道的HTML标签

有一些非常重要却容易被忽视的标签,这些标签大多数用在页面头部 head 标签内,虽然对用户不可见,但如果在某些场景下,比如交互实现、性能优化、搜索优化,合理利用它们就可以达到事半功倍的效果。一、实现交互在实现一个功能的时候,我们编写的代码越多,不仅开发成本越高,而且代码的健壮性也越差。有几个标签,可以帮助我们更简单地实现一些页面交互效果。1、meta 标签:自动刷新/跳转假设要实现一个间隔一段时间自动跳转的效果,你很可能会想到使用 JavaScript 定时器控制页面跳转来实现。但其实有更加
原创
127阅读
0评论
0点赞
发布博客于 9 月前

最完整的webpack Dll打包与采坑总结

webpack已经成为前端主流的项目打包工具,对于前端开发必不可少。在前端项目依赖第三方库过多,项目比较大文件比较多时,webpack打包的速度也会被拖成蜗牛,是时候优化一下webapck的打包速度了。在优化打包速度方面有不少方法方式,其中一个比较重要的方式是DllPlugin。DllPlugin把第三方库打包成动态链接库(动态链接库:windows系统中库文件概念,这里是借用了这一概念。),DllPlugin将不频繁更新的库进行编译,当这些依赖的库的版本没有变化时,就不需要重新编译。如果更新了依赖的第三.
原创
270阅读
0评论
1点赞
发布博客于 9 月前

这个功能也许是浏览器版本不同,功能有修改

回答的问题 #求大佬,如何更改Safari浏览器代码以实现在搜索结果中点击过的链接变色?要具体步骤!
回答了问题于 10 月前

微信小程序中图片压缩的最佳实现与封装

一、概述在项目开发过程中遇到一个需要从小程序上传图片的需求,此需求实现起来并不难,只需要调用chooseImage接口拿到图片的临时路径然后调用uploadFile接口进行上传。到这里这个功能已经实现了,可是这样简单实现了之后用户在使用时体验非常差。因为现在手机摄像头像素非常高,拍出来的照片体积都很大,上传时不做处理就会导致上传耗时长,用户消耗流量大,查看图片时加载非常慢等体验问题。二、图...
原创
1486阅读
0评论
1点赞
发布博客于 10 月前

那还真是神奇啊

回答的问题 #在cmd和vscode的终端直接执行vue -V会直接打开vue.js,想问问大佬们是什么原因?
回答了问题于 10 月前

Vue.js知识结构图.jpg

Vue.js知识结构图从基础、工具、生态、相关知识四个方面梳理了Vue.js框架所涉及的的所有知识点。
jpg
发布资源于 10 月前

用这个命令:vue --version,试试

回答的问题 #在cmd和vscode的终端直接执行vue -V会直接打开vue.js,想问问大佬们是什么原因?
回答了问题于 10 月前

你全局安装了vue-cli3了吗?先全局安装一下vue-cli3

回答的问题 #在cmd和vscode的终端直接执行vue -V会直接打开vue.js,想问问大佬们是什么原因?
回答了问题于 10 月前

基于wx.request封装的带日志输出的http请求工具

在小程序中请求接口的唯一方式是调用wx.request接口,该api被调用后把请求数据交由微信客户端转发去请求服务器端接口;除了此接口没有其他能够实现请求接口的方式方法。wx.request接口使用起来不太方便。接口调用失败的时候可以不可以全局统一处理并给出提示?接口成功的时候能不能对接口返回的结果做统一处理?接口调用时能不能在console控制台打印日志来方便查看接口相关信息,比如请求地址、...
原创
215阅读
0评论
0点赞
发布博客于 10 月前

Jenkins项目配置构建时自动生成版本号

Jenkins是非常流行的持续集成工具。使用Jenkins部署服务器端应用程序是非常方便的,在使用Jenkins构建项目的过程中对项目指定版本号以生成不同版本的构建包也是项目构建的一大需求。一、准备服务器上已经安装并配置好了Jenkins。在Jenkins中安装版本号生成插件——Version Number二、版本号格式化字符串中的变量含义BUILD_DATE_FORMATTE...
原创
3062阅读
0评论
3点赞
发布博客于 11 月前

如何修改create-react-app创建的项目的开发环境端口和自动启动浏览器

使用create-react-app创建的项目在使用npmstart命令时启动的开发环境server端口为3000并且会自动启动浏览器。本文讨论一下如何修改端口和禁止自动启动浏览器。一、修改端口没有修改端口时启动后端口为3000,那么3000是怎么来的呢?打开...
原创
1865阅读
0评论
0点赞
发布博客于 1 年前

解决vue项目在development模式下ie11、ie10 出现语法错误的问题

一、前言开发vue项目过程中,在development模式下发现在IE10,、IE11中无法运行,打开控制台发现已经报错。错误信息提示语法错误,打开定位到的报错位置,可以发现是严格模式报错。编译的代码中出现严格模式可能是因为代码中存在es6而没有被转换为es5,而在项目中已经配置了babel;正常情况下是不会出现es6未被转换的情况的。由于babel配置采用的是vue官方推荐的或者说vue...
原创
2435阅读
0评论
2点赞
发布博客于 1 年前

天安门人真多啊,来这里的游客本来是看天安门,没想到只是看到了脑袋或者屁股

 
发布Blink于 2 年前

Blink是个什么鬼

 
发布Blink于 2 年前

Vue项目基于Gitlab+Jenkins自动化部署采坑总结

采用gitlab+Jenkins来实现自动化部署的文章和教程网上有很多,可是这些教程只是写了如何进行配置和部署可是在这个过程中遇到的坑并没有给出解决方案以至于自己在按照这些文章教程进行实践时碰到了一些棘手问题而且是不好找问题的那种。经过一番摸索还是找到了解决方案并且通过了实践检验,总结出来分享给大家同时也是对这次实践的记录。如何安装Jenkins和gitlab以及在Jenkins中创建项目...
原创
936阅读
0评论
1点赞
发布博客于 2 年前

基于vue-cli3创建的项目引入PWA(二)

在上篇文章中写了安装PWA插件、配置PWA插件的步骤以及注意点,这篇文章写一下service worker的实现——sw.js。一、安装installservice worker在注册完成后会进入到安装阶段。在安装阶段service worker的生命周期状态是installing-->installed,当service worker安装成功时状态变为installed。安装成...
原创
3173阅读
0评论
0点赞
发布博客于 2 年前

基于vue-cli3创建的项目引入PWA(一)

在vue-cli创建的项目中要引入pwa可以通过安装和配置webapck插件进行集成,但是通过vue-cli3创建的项目是不推荐这种方式的。在vue-cli3的插件的中存在一个pwa插件,可以通过这个插件来引入PWA。零、配置manifest.jsonmanifest.json的各项配置基本是固定的,配置完成后基本不会修改了,不同项目配置时display项不需要修改。如下。{ "...
原创
3970阅读
0评论
3点赞
发布博客于 2 年前

windows中定时同步文件

windows系统中同步两个文件夹的文件或者两台电脑的文件可以考虑使用Microsoft同步工具SyncToy,配合Windows自带的计划任务来完成。一、安装SyncToySyncToy下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=15155安装要求:安装之前须安装Microsoft.NET Framewor...
原创
2373阅读
0评论
0点赞
发布博客于 2 年前

Vue-cli3执行serve和build命令时nodejs 内存溢出问题

前端项目越来越大,最近在执行serve和build命令时出现了CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory错误。这是因为在webapck打包过程中占用的内存堆栈超出了node.js中采用的V8引擎对内存的限制导致的。V8引擎对内存的使用的默认大小限制是1.4G,可以通过node.js命令设置限制...
原创
6820阅读
0评论
3点赞
发布博客于 2 年前

Vue.js——监听组件的生命周期

有父组件Parent和子组件Child,如果父组件监听到子组件挂载mounted就做一些逻辑处理,常规的写法可能如下:// Parent.vue<Child @mounted="doSomething"/>// Child.vuemounted() { this.$emit("mounted");}这里提供一种特别简单的方式,子组件不需要任何处理,只需要在父组...
转载
1584阅读
0评论
0点赞
发布博客于 2 年前

动态设置ECharts坐标轴分割间隔

ECharts很强大,功能很全,但是配置项太多了,查配置项手册进行配置就花费了很多时间。由于统计数据的大小始终在变化因此坐标轴的分割间隔如果写死了就会随着时间的推移变得不太合适,需要动态的根据统计数据来做一个合理的分割间隔设置。在官方配置手册上并没有提供动态配置分割间隔的方式方法,于是导致了,摸索一两个小时才发现了一种能够动态配置的方法。这种动态配置的方法的思路是在动态改变max时来通过对...
原创
6958阅读
0评论
3点赞
发布博客于 2 年前

聊一聊 cookie

我们看到的 cookie我自己创建了一个网站,网址为http://ppsc.sankuai.com。在这个网页中我设置了几个cookie:JSSESSIONID,PA_VTIME,skmtutc,test。在 chrome 浏览器中打开这个网站,进入开发者模式,点击Resources栏 -> 选择cookies,我们会看到如下图所示的界面:解释一下:左边栏Cookie...
转载
307阅读
0评论
1点赞
发布博客于 2 年前

反编译小程序实践

为了了解小程序代码压缩后是什么样子,于是进行了一次反编译。一、准备1.node.js运行环境 如果没有安装node.js,需要先安装node.js 2.反编译脚本一般都是采用GitHub上qwerty472123写的node.js脚本,不过在反编译过程中总是报$gwx未定义错误。经过搜索找到了一位基于此脚本的修改的版本,用着还是不错的。脚本下载地址 3...
原创
454阅读
2评论
3点赞
发布博客于 2 年前

js的函数的防抖和节流

一、防抖定义:触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。思路:每次触发事件时都取消之前的延时调用方法实现:function debounce(fn) { let timeout = null; // 创建一个标记用来存放定时器的返回值 return function () { clearTimeou...
原创
301阅读
0评论
0点赞
发布博客于 2 年前

一次安全可靠的通信——HTTPS原理

为什么HTTPS协议就比HTTP安全呢?一次安全可靠的通信应该包含什么东西呢,这篇文章我会尝试讲清楚这些细节。Alice与Bob的通信我们以Alice与Bob一次通信来贯穿全文,一开始他们都是用明文的形式在网络传输通信内容。嗅探以及篡改如果在他们的通信链路出现了一个Hacker,由于通信内容都是明文可见,所以Hacker可以嗅探看到这些内容,也可以篡改这些内容。公众号的...
转载
280阅读
0评论
0点赞
发布博客于 2 年前

JavaScript中的数组拷贝

拷贝分为浅拷贝和深拷贝,在JavaScript中能够实现这两种拷贝的方式也是多种多样。以下是一维数组实现深拷贝和浅拷贝的各种方式。一、浅拷贝1、赋值赋值是最直接的一种浅拷贝。 let arr3 = [1,2,3] let arr4 = arr3 arr4[0] = 11 console.log('arr3:',arr3); // [11,2,3...
原创
2642阅读
0评论
2点赞
发布博客于 2 年前

JavaScript:事件处理

function EventUtil() { /** * 添加(注册)事件 * @param {element object} element 元素/标签名 * @param {string} eventType 事件名,如'click' * @param {function} handler 响应事件的函数 */ this.addHandler = fun...
原创
87阅读
0评论
0点赞
发布博客于 3 年前

JavaScript:检测浏览器中的插件

一、前言一个浏览器安装了什么插件,有没有安装这个插件等等可以通过js进行检测得到,有助于一些依赖特定插件的场景的实现和处理。二、实现//检测所有浏览器中的插件function hasPlugin(pluginName,IEPluginName){ var result = hasPlugin(pluginName); if (!result){ re...
原创
565阅读
0评论
0点赞
发布博客于 3 年前

数据存储——cookie

一、前言随着 Web 应用程序的出现,也产生了对于能够直接在客户端上存储用户信息能力的要求。想法很合乎逻辑,属于某个特定用户的信息应该存在该用户的机器上。无论是登录信息、偏好设定或其他数据,Web 应用提供者发现他们在找各种方式将数据存在客户端上。这个问题的第一个方案是以 cookie 的形式出现的,cookie 是原来的网景公司创造的。一份题为“Persistent Client State...
原创
519阅读
0评论
0点赞
发布博客于 3 年前

跨浏览器处理 XML

一、解析XML很少有开发人员能够有福气专门针对一款浏览器做开发。因此,编写能够跨浏览器处理 XML 的函数就成为了常见的需求。对解析 XML 而言,下面这个函数可以在所有四种主要浏览器中使用。function parseXml(xml){ var xmldom = null; if (typeof DOMParser != "undefined"){ ...
原创
134阅读
0评论
0点赞
发布博客于 3 年前

跨浏览器处理 XML

一、解析XML很少有开发人员能够有福气专门针对一款浏览器做开发。因此,编写能够跨浏览器处理 XML 的函数就成为了常见的需求。对解析 XML 而言,下面这个函数可以在所有四种主要浏览器中使用。function parseXml(xml){ var xmldom = null; if (typeof DOMParser != "undefined"){ ...
原创
134阅读
0评论
0点赞
发布博客于 3 年前

在.NET Core中以日志的方式记录http请求

一、前言当线上程序曝出问题,最先想到的是看一下日志,排查是什么问题。这样做的前提是有详尽的日志记录,不光记录异常还要记录请求的数据,比如请求地址、方式、参数、结果等等。文中记录了以过滤器特性的方式实现了方便的记录请求数据的日志输出。二、实现日志过滤器代码。using System.Diagnostics;using Microsoft.AspNetCore.Mvc.Filter...
原创
5387阅读
10评论
0点赞
发布博客于 3 年前

用户在小程序操作后通过公众号(服务号)推送通知

一、前言用户在小程序进行了一个操作,操作结果不是立马返回的可能需要隔一段时间才能有处理结果,那么这时候需要让用户知道操作的结果,应该怎么办呢?总的来说有两种解决方案。一种是通过小程序模板消息,推送服务通知。这种方式只能支持用户提交表单或者进行了支付这两种场景,支持的场景过少是这种方式的缺点。一种是通过公众号(服务号)来推送消息。这种方式相比第一种方式要好的多,没有场景限制,能够满足所有需要通知...
原创
15756阅读
2评论
5点赞
发布博客于 3 年前

.NET Core整合log4net以及异常捕获和日志功能实现

一、前言log4net是一个比较知名的日志提供程序,.NET Core发布1.0的时候log4net已经给予支持;不过,.NET Core官方推荐的日志提供程序中却没有log4net,不知道内在原因是啥。用.NET Core 写了一个小工具,在这个小工具中使用了log4net来进行日志记录。文章主要记录.NET Core中如何整合log4net以及全局异常捕获的实现。二、准备在使用lo...
原创
4887阅读
16评论
3点赞
发布博客于 3 年前

使用Jenkins自动化部署Vue.js项目——兼容Vue CLI3生成的项目

Jenkins是非常流行的持续集成工具。使用Jenkins部署服务器端应用程序是非常方便的,那么使用Jenkins部署web前端应用程序效果怎么样呢,如果可以使用Jenkins部署,那么就可以直接从版本库自动拉取,自动构建,相比传统方式会省去很多麻烦。一、准备服务器上已经安装并配置好了Jenkins。二、部署步骤1、新建任务。点击左侧导航“新建任务”,跳转到新建任务页面,输入任务名...
原创
7881阅读
1评论
3点赞
发布博客于 3 年前

在win10家庭版系统中使用远程桌面连接

windows 10家庭版系统和专业版相比有很多功能限制,最近在新电脑上连接远程桌面控制阿里云时就遇到了很多问题,远程桌面连接Window Server时报错信息如下:如果在专业版系统里还是很好解决的。只要在本地组策略改一下Oracle修正就可以了。具体步骤如下:运行 gpedit.msc本地组策略:计算机配置&gt;管理模板&gt;系统&gt;凭据分配&gt;加密Oracle...
原创
6345阅读
5评论
0点赞
发布博客于 3 年前

element UI表单验证:一个复杂循环表单渲染后数据修改后的部分表单项验证

 一、前言普通的表单验证参考element UI官方文档即可找到解决方案并顺利进行代码实现,官方也给出了几个示例,是很好的参考。不过,对于复杂的表单验证,官方文档并没有给出过多示例或者说明。文章中的实例就是在实际项目中遇到的一个复杂表单的验证问题。文章中前端代码基于Vue.js框架,element UI开发。表单的初始数据来自API返回的数据。返回的数据结构如下:{ Id:'',...
原创
2651阅读
0评论
0点赞
发布博客于 3 年前

ASP.NET Core Web API+Vue.js+axios 实现图片下载

前端访问下载图片API下载图片。一、ASP.NET Core Web API代码方案一: [Route("api/[controller]")] [ApiController] public class DownloadController : BaseController { // GET: api/Download [...
原创
2472阅读
0评论
0点赞
发布博客于 3 年前

根据枚举的value获取枚举

一、功能       根据枚举的value获取枚举二、代码        /// &lt;summary&gt; /// 根据枚举的value获取枚举 /// &lt;/summary&gt; /// &lt;param name="enumType"&gt;枚举的类型,示例:typeof(enum1)&lt;/param&gt; /// &...
原创
5455阅读
0评论
0点赞
发布博客于 3 年前

根据枚举的key获取枚举

一、功能       通过枚举的key获取枚举二、代码    /// &lt;summary&gt; /// 根据枚举的key获取枚举 /// &lt;/summary&gt; /// &lt;param name="enumType"&gt;枚举的类型,示例:typeof(enum1)&lt;/param&gt; /// &lt;param n...
原创
2807阅读
0评论
0点赞
发布博客于 3 年前

微信小程序测试版部署

微信小程序开发完毕需要测试工程师进行测试。这时可以发布小程序的体验版来让测试工程师进行测试。可是体验版如何访问未上线的api呢。
原创
7055阅读
0评论
0点赞
发布博客于 3 年前

表单脚本(一):以编程方式提交表单和解决重复提交表单

提交表单用户单击提交按钮或图像按钮时,就会提交表单。使用&lt;input&gt;或&lt;button&gt;都可以定义提交按钮,只要将其type特性的值设置为"submit"即可,而图像按钮则是通过将&lt;input&gt;的type特性值设置为"image"来定义的。因此,只要我们单击以下代码生成的按钮,就可以提交表单。&lt;!-- 通用提交按钮 --&gt;&lt;inpu
原创
293阅读
0评论
0点赞
发布博客于 3 年前

在 HTML 中指定事件处理程序(事件侦听器)的部分缺点

如下代码,在指定的事件处理程序(事件侦听器)中是可以直接访问form中的元素的属性的。&lt;form method="post"&gt; &lt;input type="text" name="username" value=""&gt; &lt;input type="button" value="Echo Username"
原创
247阅读
0评论
0点赞
发布博客于 3 年前

JavaScript的闭包与变量

闭包总是搞不清匿名函数和闭包这两个概念,因此经常混用。闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数,以createComparisonFunction()函数为例,注意加粗的代码。function createComparisonFunction(propertyName) { return function(object...
原创
1167阅读
0评论
1点赞
发布博客于 3 年前

微信小程序页面使用flex布局在iOS9.X中渲染bug的解决

iOS9.X系统在渲染微信小程序页面时无法对使用flex布局的列表页面、文章内容类型页面进行正常渲染。表现为页面内容不显示或者页面样式错乱。场景一:文章内容页面样式错乱页面代码&lt;view class='container'&gt; &lt;view class='articleTitle'&gt;意外健康险索赔指引&lt;/view&gt; &lt;view c...
原创
4193阅读
2评论
0点赞
发布博客于 3 年前

客户端检测(浏览器,操作系统,平台)

用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows 操作系统、移动设备和游戏系统。var client = function(){ //呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, ...
原创
1217阅读
0评论
0点赞
发布博客于 3 年前

利用navigator对象检测插件

navigator对象是所有支持 JavaScript 的浏览器所共有的一个BOM对象。navigator对象包含appCodeName、appName、userAgent、plugins等很多非常有用的属性。检测浏览器中是否安装了特定的插件是一种最常见的检测例程。对于非 IE 浏览器,可以使用plugins数组来达到这个目的。该数组中的每一项都包含下列属性。 name:插件的名字。 ...
原创
524阅读
0评论
0点赞
发布博客于 3 年前

利用location对象获取查询字符串

通过location的属性可以访问到location对象的大多数信息,但其中访问 URL 包含的查询字符串的属性并不方便。尽管location.search返回从问号到 URL 末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数。为此,可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:function getQueryStringArgs(){ ...
原创
520阅读
0评论
0点赞
发布博客于 3 年前

JavaScript的间歇调用和超时调用

JavaScript 是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行。前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码。超时调用需要使用window对象的setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒)。其中,第一个参数可以是一个包含 JavaScript 代码的字符串(就和在eva...
原创
240阅读
0评论
0点赞
发布博客于 3 年前

vue-cli 构建的项目中如何使用 Less

vue-cli 构建的项目默认是不支持 less 的,需要自己添加。首选,安装 less 和 less-loader ,在项目目录下运行如下命令npm install less less-loader --save-dev安装成功后,打开 build/webpack.base.conf.js ,在 module.exports = 的对象的 module.rules 后面添加一段:...
转载
167阅读
0评论
0点赞
发布博客于 3 年前

JavaScript:递归

递归递归函数是在一个函数通过名字调用自身的情况下构成的,如下所示。function factorial(num){ if (num &lt;= 1){ return 1; } else { return num * factorial(num-1); }}这是一个经典的递归阶乘函数。虽然这个函数表面看来没什么问题,但下面的代码...
原创
715阅读
0评论
2点赞
发布博客于 3 年前

js设计模式:寄生构造函数模式

寄生构造函数模式通常,在前述的几种模式都不适用的情况下,可以使用寄生(parasitic)构造函数模式。这种模式的基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象;但从表面上看,这个函数又很像是典型的构造函数。下面是一个例子。function Person(name, age, job){ var o = new Object(); o...
原创
297阅读
0评论
0点赞
发布博客于 3 年前

js设计模式:动态原型模式

动态原型模式有其他 OO 语言经验的开发人员在看到独立的构造函数和原型时,很可能会感到非常困惑。动态原型模式正是致力于解决这个问题的一个方案,它把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型(仅在必要的情况下),又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。来看一个例子。function Person(na...
原创
182阅读
0评论
0点赞
发布博客于 3 年前

js设计模式:组合使用构造函数模式和原型模式

组合使用构造函数模式和原型模式创建自定义类型的最常见方式,就是组合使用构造函数模式与原型模式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度地节省了内存。另外,这种混成模式还支持向构造函数传递参数;可谓是集两种模式之长。代码例子。function Person(name, age, jo...
原创
280阅读
0评论
0点赞
发布博客于 3 年前

js设计模式:属性共享的原型模式

原型模式我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。如果按照字面意思来理解,那么prototype就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。换句话说,不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添...
原创
677阅读
0评论
2点赞
发布博客于 3 年前

js设计模式:简单而不完美的构造函数模式

构造函数模式ECMAScript 中的构造函数可用来创建特定类型的对象。像Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中。也可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。例如,使用构造函数模式如下。function Person(name, age, job){ this.name = name; this.age = age;...
原创
352阅读
0评论
1点赞
发布博客于 3 年前