当前位置: 首页 > 编程日记 > 正文

日常遇到的一些问题或知识的笔记(一)

1、坑爹的sessionStorage

一直以为sessionStorage、localStorage跟cookie一样,只要存在,整个域名下都可见,直到新开了一个窗口tab页,惊奇的发现下面的sessionStorage丢失了!

Web Storage 包含如下两种机制:

sessionStorage 为每一个给定的源(given origin)维持一个独立的存储区域,该存储区域在页面会话期间可用(即只要浏览器处于打开状态,包括页面重新加载和恢复)。 localStorage 同样的功能,但是在浏览器关闭,然后重新打开后数据仍然存在。

sessionStorage存储问题:

当前页面,或者通过location.href、window.open、或者通过带target="_blank"的a标签打开新标签,可见 主动打开一个新窗口或者新标签,不可见 通过带target="_blank"的A标签、window.open等方式打开新窗口时,增、删、改sessionStorage不会影响原窗口

参考blog.haoji.me/aboute-sess…

2、文件打包压缩上传到linux服务器后文件名乱码问题解决

打包压缩excel文件上传到linux服务器,发现文件名乱码了。

通过locale命令看到linux服务器的编码格式为utf-8

于是把excel文件通过另存为将编码格式设置为utf-8

1、windows系统一般默认的编码格式为gbk或者gb2312
2、打开excel另存为
3、在弹框里找到工具(L)——Web选中(W)...——编码
4、将excel文件的编码改为utf-8

到这一步以为可以了,用好压压缩完上传到服务器,发现还是乱码 进行下一步修改

1、用好压右键打开压缩包
2、在“选项——Language——设置代码页——更多代码页与设置”选择UTF-8
3、重新压缩excel文件
4、上传linux服务器后解压缩,文件名没有乱码了

3、gulp的一些理解

gulp.src

创建一个流,用于从文件系统中读取Vinyl对象

gulp.dest

创建用于将Vinyl对象写入文件系统的流

简单理解:,gulp.src把源文件转为Vinyl对象,经过一系列的gulp规则操作完源文件后,再由gulp.dest把转换完的源文件输出到系统

Vinyl对象是gulp特有的文件流

4、什么是vanilla.js?

其实就是原生js

vanilla.js官网 官网笑喷人的原话:

Vanilla JS is so popular that browsers have been automatically loading it for over a decade.

5、ejs的两种用法

5.1、直接引用

<script src="ejs.js"></script>
<script>var people = ['geddy', 'neil', 'alex'],html = ejs.render('<%= people.join(", "); %>', {people: people});
</script>
复制代码

直接引用还有一种写法:

var ejs = require('ejs'),people = ['geddy', 'neil', 'alex'],html = ejs.render('<%= people.join(", "); %>', {people: people});
复制代码

5.2、作为express的视图引擎

var ejs = require('ejs');
app.engine('.html', ejs.__express); // 配置需要渲染的视图文件,支持html、ejs、jade(jade需要配jade引擎)
app.set('views', './tpls'); // 视图路径
app.set('view engine', 'ejs'); // 指定视图引擎app.use('/', function(req, res, nexgt) {var data = {user: {name: '张三丰',age: '108',sex: '男'}}res.render('index.html', data); // 渲染data数据到tpls目录下的index.html,页面上采用ejs语法渲染数据即可
})
复制代码

6、artTemplate的一些坑

include的两种写法

include方法有4个参数

//常用的是前面两个参数,除了filename是string类型,后面3个都是object include = function include(filename, data, blocks, options) {...}

6.1、include+空格

{{include 'foldTable2Tmpl' {tmplData:$children,isChildren:1} }}

include+空格的写法以空格区分参数,坑的位置:

include后面的每个参数后面都要打空格,即使后面没参数了也要空格,不打空格就报错 后面3个对象参数(data、blocks、options)可以带多个属性,但是属性之间不能有空格,否则报错

6.2、include()

这种写法里面可以随便打空格,问题出在嵌套,例如tree型结构。下面这种情况会出现莫名其妙的dom结构

复制代码
    {{if $value.children && $value.children.length > 0}}{{each $value.children as $children $childrenIndex}}{{include 'foldTable2Tmpl' {tmplData:$children,isChildren:1} }}{{/each}}{{/if}}
复制代码

上面这个问题出在artTemplate内部解析错误,采用include+空格写法即可避免了

7、git提交本地分支到远程

创建本地分支

拉取远程分支到本地(适用于远程有分支)

git checkout -b iss53 origin/iss53 // 拉取远程分支(origin/iss53)到本地分支(iss53)

创建本地分支(适用于远程无分支)

1、git checkout -b iss53 // 创建本地分支iss53
2、git branch iss53 // 创建本地分支iss53

切换本地分支

git checkout iss53 // 切换到本地分支iss53

删除本地分支

git branch -d iss53 // 删除本地分支iss53

推送本地分支到远程

git push origin iss53:iss53 // 冒号前面的iss53是本地分支,冒号后面的iss53是远程分支(远程没有会自动创建)

采用上面这种推送(推送本地分支到远程),每次push,git都会提醒类似下面这种情况:

There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull If you wish to set tracking information for this branch you can do so with: git branch --set-upstream-to=origin/ release

可以执行下面的指令:

git branch --set-upstream-to=origin/remote_branch your_branch // (remote_branch)远程分支,(your_branch)本地分支

这样关联后,每次执行pull/push都只会pull/push到关联的分支。

8、一些答疑解惑

1、IIFE:function foo(){ }(); 运行结果?

IIFE(Immediately Invoked Function Expressions)代表立即执行函数 。

报错:Uncaught SyntaxError: Unexpected token ) 原因:

function关键字开头的语句会被解析为函数声明,而函数声明是不允许直接运行的。

只有当解析器把这句话解析为函数表达式,才能够直接运行 ,以运算符开头 把它变成函数表达式,

有两种方式:

1、(function foo(){ })() ;

2、(function foo(){ }()) ;

void操作符:void function foo(){ }(); 也可以解决,但是有隐患。表达式的值是undefined ,如果 IIFE 有返回值 ,不要用void关键字:

var str = void function foo(){ return 'foo' }(); // undefined

var str = (function foo(){ return 'foo' }()); // "foo"

2、axios、fetch对比

axios(vue官方推荐、github的star42K,好用!)

  • 从 node.js 创建 http 请求
  • 支持 Promise API
  • 客户端支持防止CSRF
  • 提供了一些并发请求的接口(重要,方便了很多的操作,诸如get、post这些请求已经封装好了)
  • 可监控请求进度(例如上传、下载文件),还可以中断请求

fetch(更底层,轻便灵活,成长中)

1)fetch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理

2)fetch默认不会带cookie,需要添加配置项

3)fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费

4)fetch没有办法原生监测请求的进度

5)更轻便灵活?可以设置mode为"no-cors"(不跨域 )这样可以解决跨域问题

9、解决css3效果出现抖动的问题

问题描述

在使用css3的过渡或者动画时出现

解决方案

1、布局的话,放弃transform,改用margin或flex 2、backface-visibility: hidden。但是这个会造成页面模糊 3、设置用到css3新属性的dom宽高为偶数

如transform之后如果不是整数,跟显示的实际像素对不上就会出现抖动

10、file类型input上传同一份文件不触发change事件

试了三种方法:

1、置空input的值,chrome下没成功
2、覆盖当前input,chrome下没成功
3、改变input的type类型,上传完后再改回来,chrome下成功

11、ajax + FormData实现简单的文件上传

用FormData对象接收文件

var file = dom.files[0];
var formData = new FormData();
formData.append('image', file);
复制代码

利用ajax上传文件

$.ajax({type: 'post',timeout: 60000,processData: false,  // 设置为false,对于非Get请求,不自动将 data 转换为字符串// contentType: false,url: 'url',data: formData,dataType: 'JSON',success: function(data) {console.log(data);}
})
复制代码

需要主要ajax的参数processData,默认下会把ajax序列化,上传文件时要把它置为false

12、CSS3实现多行文本省略


text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;复制代码

-webkit-line-clamp

限制在一个块元素显示的文本的行数

display: -webkit-box;

*必须结合的属性 *,将对象作为弹性伸缩盒子模型显示

-webkit-box-orient

必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

text-overflow

设置文本超出时的以'...'省略号代替

13、用measure导出的sketch文件显示百分比

如图,在win7环境下喜欢用alt+tab切换窗口,再切回sketch文件发现居然只显示百分比了,原本以为是文件问题,每次关掉重开,其实不是:

alt 键即可切回显示像素

14. jquery报错Illegal invocation

ajax请求时报错

Uncaught TypeError: Illegal invocation

这是ajax的请求参数太大了,无法解析,一般是插件未初始化完成,导致带上了整个DOM节点对象,例如整个window对象

15、滚动条样式-webkit-scrollbar

::-webkit-scrollbar { // 整个滚动条全局样式width: 6px;height: 6px;background-color: transparent;
}
::-webkit-scrollbar-thumb { // 滚动条上的滚动滑块-webkit-border-radius: 4px;border-raidus: 4px;background-color: rgba(67, 160, 71, 0.7);
}
::-webkit-scrollbar-track { // 滚动条轨道background-color: transparen;
}
复制代码

16、IE下a标签下载问题

在IE下用createElemnt('a') + FileReader下载二进制文件,报错:

传递给系统调用的数据区域太小

由于IE对URL的字符限制是最大2083个,一般的文件下载转换为二进制长度超过这个限制就会报错,解决方案如下:

// msSaveOrOpenBlob兼容IE10+
var blob = this.response // 转换后的二进制文件
window.navigator.msSaveOrOpenBlob(blob, '下载的文件.xlsx')
复制代码

17、简单理解原型链

什么是原型链?

对象实例与其原型对象之间的连接就是原型链

在js中,一般通过函数创建对象。只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象。当调用构造函数创建一个对象实例后,该实例内部将包含一个指针,该指针指向构造函数的原型对象。

该指针为[[Prototype]],无法直接访问,各浏览器实现了 _proto_ 来访问该指针,即可以通过_proto_访问原型对象上的任意可访问属性

代码示例:

var Person = function () {}
Person.prototype.name = "Nicholas";
Person.prototype.age = 25;
Person.job = "Software Engineer";
Person.prototype.sayName = function () {alert(this.name);
}var person1 = new Person();
person1.sayName(); // "Nicholas"var person2 = new Person();
person2.sayName(); // "Nicholas"alert(person1.sayName == person2.sayName); // true
复制代码

代码图解:

18、闭包

闭包是指有权访问另一个函数内部作用域中变量的函数
创建闭包的常见方式,就是在一个函数内部创建另一个函数

return该创建好的函数给外部用,这个return出去的函数即闭包

// 闭包实现简单的计数器
function counter(){var num = 0;return function () {return num++}
}
var res = counter()
res(); // 1
res(); // 2
复制代码

相关文章:

你是“10倍工程师”吗?这个事,​国外小伙伴们都快“吵”起来了

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】近日&#xff0c;推特上一个话题“10x工程师”异常火爆&#xff0c;引发的热议经久不散。这个话题由一位印度初创公司投资人 Shekhar Kirani 的一条推特引发&#xff0c;他写道&#xff1b;“如果…

运动目标跟踪__kalman

转自&#xff1a;http://blog.csdn.net/lindazhou2005/article/details/1534234 1、 什么是卡尔曼滤波器&#xff08;What is the Kalman Filter?&#xff09; 在学习卡尔曼滤波器之前&#xff0c;首先看看为什么叫“卡尔曼”。跟其他著名的理论&#xff08;例如傅立叶变换&a…

Spring工厂常识

环境搭建导入Sring对应的jar包导入Spring依赖的commons-loggin包导入log4j.properties在src下导入ApplicationContext.xml在任意目录下是一个轻量级的企业开发框架核心:IOC , AOP编程IOC:也就是inverse of control 控制反转 就是讲创建对象的权利转移到工厂中,从而实现解耦合和…

iframe子页面操作父页面

2019独角兽企业重金招聘Python工程师标准>>> 最近经常用到iframe&#xff0c;用的最多的就是在子页面中操作父页面的方法或变量等&#xff0c;总结了用到的几种方法&#xff0c;如下&#xff1a; var tableName window.parent.frames["mainFrame"].tNam…

ASP.NET MVC动作过滤器

ASP.NET MVC中包含以下4种不同类型的Action Filter&#xff1a; 类型使用时机接口实现方法授权过滤器(Authorization Filter)在执行任何Filter或Action之前被执行&#xff0c;用于进行身份验证IAuthorizationFilterAuthorizeAttribute动作过滤器(Action Filter)在执行Action之前…

什么限制了GNN的能力?首篇探究GNN普适性与局限性的论文出炉!

作者 | Andreas Loukas译者 | 凯隐责编 | Jane出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;【导读】GNN是目前机器学习领域的热门网络之一&#xff0c;肯多研究与技术分享相比不可知的深度学习网络模型&#xff0c;GNN 有哪些吸引我们的优势及硬核实力。然而&…

OpenCV运动检测跟踪(blob track)框架组成模块详解

在..\opencv\doc\vidsurv文件夹中有三个doc文件&#xff0c;Blob_Tracking_Modules、Blob_Tracking_Tests、TestSeq&#xff0c;其中Blob_Tracking_Modules必须需要详读的。 “FG/BG Detection” module performsforeground/background segmentation for each pixel. “Blob E…

vi和软件安装

一 vi编辑器简介 vim 全屏幕纯文本编辑器 二 vim使用 1 vi 模式 vi 文件名 命令模式 输入模式 末行模式 命令----》输入 a&#xff1a;追加 i&#xff1a;插入 o&#xff1a;打开 i 命令----》末行 :w 保存 :q 不保存退出 2 命令模式操作 1&#xff09;…

鸟哥学习笔记---网络安全基础

yum clean [packages|header|all] packages:将已下载的软件文件删除 headers&#xff1a;将下载的软件文件头删除 all:将所有容器数据都删除 添加镜像站点&#xff1a;mirrorlisthttp://ftp.twaren.net/Linux/CentOS/6/os/x86_64/ http://free.nchc.org.tw/drbl-core/i386/RPMS…

使用纯C++实现SQL Server2005 数据库读写操作详细步骤

环境&#xff1a;虚拟机windows xp&#xff0c;vs2008 SQLServer 2005 Express 数据库访问技术采用ADO。 需要安装的软件包括&#xff1a;microsoft_dotnetfxchs2.0.exe、WindowsInstaller-KB893803-v2-x86.exe、SQLEXPR32_CHS.EXE、SQLServer2005_SSMSEE.msi、SQLServer200…

硬核吃瓜!上万条数据撕开微博热搜真相

作者 | 徐麟来源 | 转载自数据森麟&#xff08;ID:shujusenlin&#xff09;吃瓜前言关于新浪微博&#xff0c;向来都是各路吃瓜群众聚集之地&#xff0c;大家在微博中可以尽情吃瓜&#xff0c;各种类型的瓜应有尽有&#xff0c;只有你想不到的&#xff0c;没有你吃不到的。微博…

python类的__slots__属性、__del__属性、上下文(__enter__和__exit__)、

常规情况下&#xff0c;类的属性字典是共享的&#xff0c;而实例的字典是独立的。如果一个类的属性较少&#xff0c;但是拥有很多的实例&#xff0c;这些实例的属性字典会占用较多的内存空间。对这样的类来说&#xff0c;为了节省内存空间&#xff0c;可以使用__slots__类变量代…

普通帧,关键帧,空白关键帧的区别

1. 特点 帧——是进行flash动画制作的最基本的单位&#xff0c;每一个精彩的flash动画都是由很多个精心雕琢的帧构成的&#xff0c;在时间轴上的每一帧都可以包含需要显示的所有内容&#xff0c;包括图形、声音、各种素材和其他多种对象。 关键帧——顾名思义&#xff0c;有关键…

Spark入门系列(二)| 1小时学会RDD编程

作者 | 梁云1991转载自Python与算法之美&#xff08;ID:Python_Ai_Road&#xff09;导读&#xff1a;本文为 Spark入门系列的第二篇文章&#xff0c;主要介绍 RDD 编程&#xff0c;实操性较强&#xff0c;感兴趣的同学可以动手实现一下。RDD 是弹性分布式数据集(Resilient Dist…

Office2010启动慢的解决方法

以word2010为例&#xff1a; 解决启动慢的问题&#xff1a; 转自&#xff1a;http://www.blue1000.com/bkhtml/2011-12/70698.htm 首先启动Word2010&#xff0c;-->单击进入“文件”选项卡-->选择左边的“选项”按钮-->弹出“word选项”对话框窗口&#xff0c;-->…

如何在 Vue 项目中使用 echarts

数据的重要性我们大家都知道&#xff0c;就算再小的项目中都可能使用几个图表展示&#xff0c;我最近在做项目的过程中也是需要用到图表&#xff0c;最后选择了echarts 图表库&#xff0c;为什么选择 echarts&#xff0c;第一&#xff1a;简单上手容易&#xff0c;第二&#xf…

OpenCV实现在图像中写入汉字

由于OpenCV自带的cvInitFont和cvPutText函数不支持向图像中写入中文&#xff0c;参考http://www.opencv.org.cn/forum/viewtopic.php?t2083 中的方法&#xff0c;在windows7 64位机上用vs2008OpenCV2.3.1实现具体步骤如下&#xff1a; 1、新建一个控制台工程Test&#xff0c;先…

Operations Manager 2012 SP1配置部署系列之(二) SCOM监控SCVMM

你可以使用Operations Mangager连接到VMM上去监控VMM管理的虚拟机和虚拟机的主机的健康和可用性.你还可以监视VMM管理服务器的健康和可用性&#xff0c;VMM数据库服务器、存储库服务器&#xff0c;和矢量调制法的自服务门户web服务器.当你把VMM与Operations Mangager集成、VMM的…

ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系

前面已经介绍了如何使用URDF建造机器人小车并显示在Rviz的仿真环境里面&#xff0c;但是小车是静止的。下面介绍如何让它在Rviz里面动起来&#xff0c;并理清URDF,TF 和 odom 的关系。 1. ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系 一般在urdf文件…

谷歌新研究:基于数据共享的神经网络快速训练方法

作者 | Google Brain译者 | 凯隐责编 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;神经网络技术的普及离不开硬件技术的发展&#xff0c;GPU 和 TPU 等硬件型训练加速器带来的高算力极大的缩短了训练模型需要的时间&#xff0c;使得研究者们…

制作一个简单的linux

我这里是借助宿主机做的一个简单的Linux&#xff0c;我们只要知道一个Linux启动过程需要什么&#xff0c;这里制作就简单的多了。不过没有基础的也没关系&#xff0c;我写的很详细&#xff0c;没有基础的看了我写的步骤只要细心也是会做出来的&#xff0c;我这里的小Linux是很简…

nginx是什么,如何使用

一&#xff1a;nginx是什么&#xff1f; 二&#xff1a;nginx作为网关&#xff0c;需要具备什么&#xff1f;&#xff08;nginx可以作为web服务器&#xff0c;但更多的时候&#xff0c;我们把它作为网关&#xff0c;因为它具备网关必备的功能&#xff1a;&#xff09; 反向代理…

OpenCV中Mat数据结构使用举例

#include "stdafx.h"#include <string>#include <iostream>#include <opencv2/opencv.hpp>using namespace std;using namespace cv;int _tmain(int argc, _TCHAR* argv[]){//创建一个用13j填充的 7 x 7 复矩阵-----1Mat M(7, 7, CV_32FC2, Scalar…

贾扬清加盟AI开发者大会!早鸟票抢购正式开启

整理 | 夕颜硬核 AI 技术大会&#xff0c;一年参加一次就够了。9 月 6日-7 日&#xff0c;2019 AI 开发者大会&#xff08;AI ProCon&#xff09;将在北京富力万丽酒店举行&#xff0c;人工领域技术领袖将再次齐聚一堂&#xff0c;探讨过去一年最新的 AI 技术趋势与变化&#x…

基本控件HyperlinkButton控件

HyperlinkButton控件可用来作为超链接按钮&#xff0c;支持页面导航。 若导航到MainPage.xaml&#xff0c;NavigateUri属性指定单击后导航页面的Uri 若导航到网页&#xff0c;必须同时指定TargetName&#xff0c;否则要报错。 <HyperlinkButton Width"200" Heigh…

江湖又现中科大少年班的传说

作者 | ——&#xff0c;夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;导读&#xff1a;近日&#xff0c;《日本经济新闻》的一则报道指出&#xff1a;在左右着企业、国家和地区发展的人工智能领域&#xff0c;中科大少年班的人才支撑着中国的发展。中国自动驾…

[JOISC2014]バス通学

[JOISC2014]バス通学 题目大意&#xff1a; 有\(n(n\le10^5)\)个点和\(m(m\le3\times10^5)\)条交通线路。第\(i\)条交通线路可以让你在时间\(x_i\)从\(a_i\)出发&#xff0c;并在\(y_i\)时到达\(b_i\)。\(q(q\le10^5)\)次询问&#xff0c;每次询问若要在时间\(l_i\)到达\(n\)点…

Windows7在Notepad++中配置Python+OpenCV

1、 从http://notepad-plus-plus.org/下载最新的Notepad6.2.1安装&#xff1b; 2、 从http://www.python.org/下载python-2.7.3.msi安装到D:\Python27目录下&#xff0c;并将D:\Python27添加到环境变量Path中&#xff1b; 3、 打开Notepad&#xff0c;按下F5或者运行(R…

virtualenv 在windows下的绿化方法

virtualenv 在windows下的绿化方法测试环境&#xff1a;windows 7 32 en Python 2.7.3setuptools-0.6c11.win32-py2.7virtualenv-1.9.1-with-pip-1.3.11. f:\> virtualenv my2. 编辑 my/Scripts/activate.bat 前几行中设置VIRTUAL_ENV的那条语句&#xff0c;改为set VIRTUA…

当谈论迭代器时,我谈些什么?

作者 | 樱雨楼编辑 | 豌豆花下猫转载自python猫&#xff08;ID:python_cat&#xff09;导语&#xff1a;之前说过&#xff0c;我对于编程语言跟其它学科的融合非常感兴趣&#xff0c;但我还说漏了一点&#xff0c;就是我对于 Python 跟其它编程语言的对比学习&#xff0c;也很感…