聚合文章列表
10 浏览

大白话Vue源码系列(03):生成AST

阅读目录AST节点定义标签的正则匹配解析用到的工具方法解析开始标签解析结束标签解析文本解析整块HTML模板未提及的细节本篇探讨Vue根据html模板片段构建出AST的具体过程。这对Vue的使用通常没什么帮助,但熟悉这个过程会对Vue的内部工作原理有更清晰的认识。主代码位置:Vue项目的src/compiler/parser/html-parser.js文件。AST节点定义AST是由一个个节点组成的,正如DOM树是由DOM节点组成的一样。Vue使用正则表达式匹配html标签,并将标签解析成AST节点,所以继续下面的内容之前最好对正则表达式有一定了解。Vue的AST节点数据结构定义如下://节点包含3种类型:标签元素、普通文本、插值表达式declaretypeASTNode=ASTElement|ASTText|ASTExpression;declaretypeASTElement={type:1;tag:string;attrsList

Vue.js 2017-12-22 发布
14 浏览

element-ui-verify:可以替代饿了么 ElementUI 原生校验方式的校验插件

element-ui-verify如果你受够了饿了么ElementUI原生的校验方式,那就来试试它吧!前言饿了么ElementUI虽好,但表单校验的体验不够理想如果说产品开发要讲究用户体验,那插件开发也要讲究开发体验,而好的开发体验,要靠好的api设计来保障本人专注校验插件开发30年,有祖传的校验插件api设计(玩笑)。主要是参考了之前写的vue-verify-pop的api,并加以完善,取值精华,去其糟粕,揉和日月之精华。。。本插件只是对ElementUI原本的校验方式做了一层封装,核心的校验器仍然是async-validator,非侵入式,完全不会影响你继续使用ElementUI的原生校验安装npminstallelement-ui-verify使用环境VUE版本:2.xwebpack模块环境一,安装importVuefrom'vue'importelementUIfrom'element-ui'importelementUIVerifyfrom'element-ui-ve

Vue.js 2017-12-22 发布
13 浏览

利用FormData对象实现AJAX文件上传功能及后端实现

包括HTML基础设置、CSS界面优化、JS利用FormData对象和AJAX进行上传、后端接收文件并存储到指定路径以及删除文件操作。基础的设置:Form的enctype属性enctype这个属性管理的是表单的MIME编码,它一共有三个属性:

Ajax 2017-12-22 发布
AD 友情赞助
14 浏览

原生JS写Ajax的请求函数

请求功能,具体的代码如下:varajax={};ajax.x=function(){if(typeofXMLHttpRequest!=='undefined'){returnnewXMLHttpRequest();}varversions=["MSXML2.XmlHttp.6.0","MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0","Microsoft.XmlHttp"];varxhr;for(vari=0;i

Ajax 2017-12-22 发布
58 浏览

xSirrioNx/js-xlsx设置基本样式输出excel文件

问题一直在使用SheetJSCommunityEdition,也就是它的社区版本,看到文档里面提到了对每个Cell层面的样式控制(cell-object),尝试了一次都没有输出效果。后面查阅了一些资料,发现SheetJS社区版,不能对导出的excel文件进行样式设置,只要寻求其他途径解决。过程发现这一点(不能设置输出文件样式)之后,开始翻看SheetJS的问答区域的关于style的所有问题,在查看的过程中,发现一个demo例子,能够实现基本样式控制:JSFiddle:https://jsfiddle.net/1g24vowu/1/解决使用js-xlsx改良过的版本,这个SheetJS分支版本为SheetJS社区版本添加了输出文件颜色设置,真的是要感谢这位xSirrioNx的贡献。创建样式对象excelCellvarexcelCell={v:"",t:"s",s:{fill:{patternType:"none",fgColor:{rgb:"FF000000"},bgColor:{rgb:"FFFFFFFF

JavaScript 2017-07-17 发布
16 浏览

Python爬虫:更加优雅的执行JavaScript(PyV8)

这个周末,会不会收到你的礼物大家好,我又来填坑了。这次以今日头条作为样例。作为补偿,今日头条App下载量+1。只要你开始写爬虫了,或早或晚的你都会去接触到JavaScript。然后等你爬虫做久了,你就会成为你个资深的前端开发工程师。在之前的文章中提过,在定向爬虫中极其不推荐使用selenium,速度太慢。那对于JavaScript总要有个解决方案,速度相对快的解决方案有两个:将js代码翻译成python。严肃别笑,这是可行的,在js混淆不盛行的时候我真的这么干过。第一你要非常有时间,毕竟你可能对js不熟。但JavaScript是每个前端工程,啊呸,爬虫工程师绕不过的南墙。在js混淆盛行的现在,反正我是不会选这个方法,你选你大佬,你可以站在爬虫鄙视链的顶端。略微分析,直接去执行有效的js代码,取得你想要的结果。为什么说有效,因为现在的js里会混淆大量无效干扰你的js,比如极验。JavaScript的执行需要js引擎,于是引入今天的主角PyV8。GoogleV8isGoogle’sopensourceJavaScriptengi

JavaScript 1900-01-01 发布
AD 友情赞助
19 浏览

WebSocket详解

WebSocket详解因为http协议是单向的,之前如果服务器端有连续的变化需要通知客户端,只能通过客户端进行轮询(或者longpoll),但是轮询非常浪费资源,工程师们就发明了WebSocket。2011年成为国际标准,目前所有浏览器都已经支持了。WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。这是百度百科的定义,非常容易理解。服务端主动推送消息到客户端解决了一大痛点,也是使用WebSocket的最大原因。在WebSocketAPI,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。特点建立在TCP协议之上,服务器端容易实现。与HTTP兼容良好,握手阶段采用HTTP协议。性能开销小,通信高效。可发送文本或二进制数据。没有同源限制。优势一句话就是:持久化链接相比于轮询和longpoll,WebSocket带来的性能开销优势就是因为持久化链接。简单说下轮

HTML 2017-12-22 发布
15 浏览

51个css时间轴

VHDL中数据类型转换与移位(STD_LOGIC_ARITH与NUMERIC_STD)目前写VHDL程序时,大部分人已经熟悉的库调用如下所示:这几个库文件的源码可以在IEEE库文件链接中查看,首先阐述一下这些文件的内容和主要作用:注意:该库函数无法对STD_LOGIC_VECTOR做任何运算。-std_logic_unsigned/std_logic_...

CSS 1900-01-01 发布
18 浏览

用 Django2.0 做 简单的BBS(前端用 Bootstrap)

实现目标:开发首页显示BBS的标题和摘要,点击BBS的标题可跳转到BBS详细页面进行展示。开发环境及开发工具:Python3.6.3Django2.0Pycharm2017.3实现过程:1创建project用语句创建:django-adminstartprojectBBS_Pro2、创建apppythonmanage.pystartappapp013、启动服务pythonmanage.pyrunserver4、编辑BBS_Pro/settings把新创建的app名称加入,进行admin汉化:INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01',]LANGUAGE_CODE='zh-h

CSS 2017-12-22 发布
AD 友情赞助
18 浏览

Web前端体系的脉络结构(CSS篇)

Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系的css进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。1、CSS选择器CSS选择器即通过某种规则来匹配相应的标签,并为其设置CSS样式,常用的有类选择器、标签选择器、ID选择器、后代选择器、群组选择器、伪类选择器(before/after)、兄弟选择器(+~)、属性选择器等等。2、CSSResetHTML标签在不设置任何样式的情况下,也会有一个默认的CSS样式,而不同内核浏览器对于这个默认值的设置则不尽相同,这样可能会导致同一套代码在不同浏览器上的显示效果不一致,而出现兼容性问题。因此,在初始化时,需要对常用标签的样式进行初始化,使其默认样式统一,这就是CSSR

CSS 2017-12-22 发布
18 浏览

【译】用 CSS 选择器和自定义属性来升级你的项目

这篇文章原文刊登在TestProject。感谢你们的支持,让SitePoint成为可能。SeleniumWebDriver的元素选择器是自动化测试框架中所提及的核心组件中的一种,同时也是与web应用进行交互的关键。在对自动化元素选择器的回顾中,我们讨论了很多不同的选择器应用策略,探究其功能,权衡优缺点,最终我们推荐最佳的选择器应用策略——带有自定义属性的CSS选择器。Selenium的元素选择器选择最好的元素选择器策略是成功的关键,也减轻了自动化工作的维护压力。因此,做出选择的时候应该从使用难度,多功能性,是否具有在线支持,文档丰富程度以及性能等多方面进行考虑。前期的充分考虑是有回报的,自动化工作会更容易维护。就像从技术方面考虑元素选择器一样,也要考虑到团队文化。在自动化工作中采用元素选择器时,在开发者与QA之间成熟的合作文化可以解锁更高成就,取得更好的效果。夯实软件开发周期中其它方面的合作基础不仅对自动化工作有益,更是对团队有益。所有的代码示例都是由Python和Selenium

CSS 2017-12-22 发布
20 浏览

css3自定义滚动条样式写法

先简单介绍一下各个属性::-webkit-scrollbar:滚动条整体部分,其中的属性有width,height,background,border等。::-webkit-scrollbar-button:滚动条两端的按钮。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。::-webkit-scrollbar-track:外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果。::-webkit-scrollbar-track-piece:内层轨道,具体区别看下面gif图,需要注意的就是它会覆盖第三个属性的样式。::-webkit-scrollbar-thumb:滚动条里面可以拖动的那部分::-webkit-scrollbar-corner:边角,两个滚动条交汇处::-webkit-resizer:两个滚动条交汇处用于拖动调整元素大小的小控件(基本用不上)下面看几组比较效果一上图滚动条效果的css代码如下,默认此部分为原始代码,之

CSS 2017-12-22 发布
AD 友情赞助
18 浏览

thinkphp5 加载静态资源路径与常量

1、加载静态资源路径大于5.0.4版本可以直接使用__ROOT__:项目目录__STATIC__:项目目录下的static目录__JS__:项目目录下的static/js目录__CSS__:项目目录下的static/css目录我们可以使用view模板打印这些常量的具体路径Inserttitlehere__ROOT__
__STATIC__
__JS__
__CSS__
页面输出如下://projectname/public/static/projectname/public/static/js/projectname/public/static/css打开application文件夹下的config文件,可根据你自己需要自定义资源常量,定义好后常量就可以在模板文件中使用常量了。例如:

CSS 2017-12-22 发布
22 浏览
开始