php使用jquery Form 实现页面无刷新上传图片,并预览图片
type指定提交表单数据的方法(method):"GET"或"POST"。默认值:GETbeforeSubmit表单提交前被调用的回调函数。如果回调函数返回false表单将不被提交。回调函数带三个调用参数:数组形式的表单数据,Jquery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。默认值:nullsuccess表单成功提交后调用的回调函数。然后dataType选项值决定传回responseText还是responseXML的值。默认值:nulldataType返回的数据类型:null、"xml"、"script"、"json"其中之一。默认值:nullresetForm表示如果表单提交成功是否进行重置。默认值:nullclearForm表示如果表单提交成功是否清除表单数据。默认值:null四、例子如下:demo.HTML代码如下:
对服务端渲染的一次实践(带你掌握服务端渲染)
之前react做的一个应用,最近把首页改成了服务端渲染的形式,过程还是很周折的,踩到了不少坑,记录一些重点,希望有所帮助前端使用的技术栈react、react-dom升级到v16react-router-domv4reduxred-sageantd-mobile升级到v2ssr服务express项目地址,喜欢的给个star,感谢。。。。。。。访问地址(手机模式)非服务端渲染服务端渲染效果对比前后处理流程对比react下ssr的实现方式React下同构的解决方案有next.js、react-server等,这里,因为这个项目之前已经采用create-react-app、redux做完了,只是想在现有系统基础上把首页改成服务端直出的方式,就选择了webpack-isomorphic-tools这个模块webpack-isomorphic-tools介绍如果我们想在现有React系统中引入同构,首先要解决的一个重要问题是:代码中我们import了图片,svg,css等非js资源,在客户端webpack的各种
DataTables自定义分页条数实现
背景因项目需要,选择了DataTables这款表格插件做数据展示。在实际开发过程中,需要将所有的搜索条件放在页面顶部,所以我需要DataTables的搜索和分页条数单独提出来。解决办法办法其实很简单,只需要参考DataTables的官网文档就可找到。当时因为项目赶得紧没太多时间看英文文档,在google上搜了好久都没有找到合适的解决方案,最后只能暂时搁置。最后项目完成后,才又去官网仔细看文档,才找到相关的解决办法~~~前台页面提供选择(搜索)框
腾讯云 COS webpack 插件开源
今天想把一个老的Yii2项目改成比较时髦的前后端分离的开发模式,于是试用了webpack,感觉还不错。项目线上我是想直接把编译后的文件传到带cdn的对象存储上,因为服务器用的是腾讯云的cvm,所以对象存储就顺便选择了cos。Github上搜了下没有现成的webpack插件,不过有几个现成的七牛的,比较了一下发现https://github.com/lyfeyaj/qn-webpack这个项目的代码最简洁清晰,于是就在这个项目的基础上自己改出了一个cos的webpack插件并开源了出来:https://github.com/takashiki/cos-webpack。npm发布包的步骤参考:手把手教你用npm发布一个包。下面是该插件的安装和使用方式:前提需要Node版本在v4.0以上,COSV4以上(APPID为125开头)安装npmi-Dcos-webpack使用方法支持的配置项:secretIdCOSSecretIdsecretK
谈谈 dva 和 mobx 的使用感受
,从1.x版本开始使用,一直看着它发展到前不久的2.x,我也基于这个工具开发了一套项目模版,它简化了redux的使用,并且在封装了redux-saga和react-router,同时还可以包含dva-loading插件获取loading状态等。在redux时代,当我需要新增一种跨页面全局数据的时候,我需要去项目的reducers目录定义一下这种数据命名和初始值,然后在constans目录中为更改这项数据的操作定义一种唯一的操作类型(type),再去actions目录定义一些方法,这些方法最后会得到更改后的数据和操作类型(type),最后再回到reducers中根据这个操作类型(type)把数据整合到reducer中…可以看到,我在编写redux这部分代码的时候需要频繁在actions、constants、reducers这几个目录间切换。而使用dva就可以免除这些困扰了,我只需要一个model中就可以完成所有操作://app全局性状态管理import*
根据条件过滤日志输出
一个在很多项目里可能存在的场景:各种原因导致了很多人在共用一套环境,然后要在这一套环境上进行各种开发、调测、定位活动,由于用的人多,查看日志就变得很麻烦,首先要从极速刷新的日志里先找到关注的关键字,然后从关键字的位置再找出处理这一请求的上下文日志来,经常重复这样的操作,严重地影响了工作效率。所以最近想花时间来解决这个问题,思路是用户在浏览器或者命令行上发起查看日志的请求,同时指定自己查看日志的过滤条件,这个过滤条件针对的是日志框架的MDC(MappedDiagnosticContext)信息,这些MDC信息来自于请求参数,客户端特征信息,也可以是业务逻辑自行指定,然后再拦截日志框架的日志输出,所有的日志输出都和用户的过滤条件进行匹配,匹配上了就流式地返回给用户。这样用户就可以单独地收到一份只包含符合特定过滤条件的日志了。比如,用户可以指定只查看某个客户端IP请求的日志内容,大大提升日志查看的效率。当前的实现方案,选择了基于tomcat对外暴露一个websocket的接口(为了便于扩展,以及满足简单、优雅地返回流式数据的要求)
angularjs 学习之 scope作用域
简介Scope(作用域)是应用在HTML(视图)和JavaScript(控制器)之间的纽带。Scope是一个存储应用数据模型的对象,有可用的方法和属性。Scope可应用在视图和控制器上。作用域是Web应用的控制器和视图之间的粘结剂:控制器-->作用域-->视图(DOM)指令-->作用域-->视图(DOM)当你在AngularJS创建控制器时,你可以将$scope对象当作一个参数传递:{{name}}
H5开发中的故障
H5开发中的故障微信APP返回按钮不刷新页面返回上一页JSSDK分享内容动态改变JSSDK跨域的分享链接[..持续更新中..]微信APP返回按钮不刷新页面该问题出现在iphone7的微信上,当一个活动存在多个页面,那么如果进入第二个页面时,再点击微信app上的返回按钮,虽然可以返回history中的上一级页面,但是会出现页面内容没有刷新还是最后跳转时的状态。解决方案很简单,那就是每进入到一个页面,都会去判断这个页面是否是从缓存中读取的,如果是则强刷页面。实现这个功能,我们可以利用window.onpageshow事件的pageTransitionEvent对象来判断当前页面是否从缓存中读取。具体代码:letisIphone=/iPhone/.test(navigator.userAgent);if(isIphone){window.onpageshow=function(event){if(event.persisted){location.reload(true);}}}persi
前端性能优化——桌面浏览器前端优化策略
原文出处:ouven通过性能测速和分析,我们基本可以获取收集到页面上大部分的具体性能数据,如何根据这些数据采取适当的方法和手段对当前的页面进行优化呢?目前来看,前端优化的策略很多,如YSlow(YSlow是Yahoo发布的一款Firefox插件,可以对网站的页面性能进行分析,提出对该页面性能优化的建议)原则等,总结起来主要包括网络加载类、页面渲染类、CSS优化类、JavaScript执行类、缓存类、图片类、架构协议类等几类,下面逐一介绍。一、网络加载类1.减少HTTP资源请求次数在前端页面中,通常建议尽可能合并静态资源图片、JavaScript或CSS代码,减少页面请求数和资源请求消耗,这样可以缩短页面首次访问的用户等待时间。通过构建工具合并雪碧图、CSS、JavaScript文件等都是为了减少HTTP资源请求次数。另外也要尽量避免重复的资源,防止增加多余请求。2.减小HTTP请求大小除了减少HTTP资源请求次数,也要尽量减小每个HTTP请求的大小。如减少没必要的图片、JavaScript、CSS及HTML代码,对文件进
借助HTML5 details,summary无JS实现各种交互效果
这篇文章发布于2018年01月15日,星期一,01:52,归类于HTML相关。阅读41次,今日41次byzhangxinxufromhttp://www.zhangxinxu.com/wordpress/?p=7312本文可全文转载,但需得到原作者书面许可,同时保留原作者和出处,摘要引流则随意。一、了解HTML5details,summary默认交互行为 这里具体描述,标签相对随意,例如这里使用的 标签。 默认隐藏了; 标签显示这是摘要1
标签内容,而
标签前面出现了一个小三角;小三角图形的隐喻是:我是可点击的,点击我可能会出现宝箱。OK,我们不妨就点击一下,结果如下图:具体描述为:原本隐藏的
.NET 中的轻量级线程安全
对线程安全有要求的代码中,通常会使用锁(lock)。自.NET诞生以来就有锁,然而从.NETFramework4.0开始,又诞生了6个轻量级的线程安全方案:SpinLock,SpinWait,CountdownEvent,SemaphoreSlim,ManualResetEventSlim,Barrier。SpinLock,SpinWaitSpinLock被称之为“自旋锁”,SpinWait称为“自旋等待”,适合在非常轻量的计算中使用。它与普通lock的区别在于普通lock使用Win32内核态对象来实现等待,OverviewofSynchronizationPrimitives中描述为:youcanusesynchronizationprimitivesthatprovidefastperformancebyavoidingexpensiverelianceonWin32kernelobjectssuc
VS2017编译SFML SDK配制环境详解
SFML和VisualStudio介绍如果您在VisualStudioIDE(VisualC++编译器)中使用SFML,本教程是第一个应该阅读的教程。它将解释如何配置您的SFML项目。安装SFML首先,您必须从下载页面下载SFMLSDK。您必须下载与您的VisualC++版本相匹配的软件包。事实上,用VC++10(VisualStudio2010)编译的库不会与VC++12(VisualStudio2013)兼容。如果没有为您的VisualC++版本编译的SFML包,则必须自己构建SFML。自己构建SFML方法(如果有自己vs版本SDK可直接下载SDK使用跳过构建,直接看下文vs2017中SMLSDK的配制):1.安装CMake下载地址2.官网下载SFMLSourcecode解压到任意路径本例中放在d:/sfml3.打开CMake设置如下①SFMLSourcecode路径②工程生成路径③生成4.第一次选择编译器5.选择配制配制
前端 WebView 指南之 iOS 交互篇
前文我们介绍了Android的WebView交互方式,iOS从原理上来说和Android还是非常类似的。在iOS中WebView需要分为UIWebView和iOS8中新增的WKWebView两种类型。其中WKWebView相较于UIWebView优势在于能够直接使用系统Safari渲染引擎去渲染页面,支持更多的HTML5特性,渲染性能也会更好点。由于对iOS开发了解不太多,以下的代码大多是网络整理,没有swift的实现,如果有任何错误还请及时联系。客户端调用JS两个WebView类型提供了不同的调用方式,但是基本上可以归类成以下两种:evaluateScript在UIWebView中,iOS7+提供了JavascriptCore让我们能够直接在WebView中获取到JSContext,也就是当前执行环境的JS上下文。在这里我们就可以获取到对应的JS方法并执行,是非常高效的执行方式。同时这种方式的好处是能够拿到JS执行的结果,并转换成对应的JS类型
一篇文章彻底说清JS的深拷贝/浅拷贝
一篇文章彻底说清JS的深拷贝and浅拷贝这篇文章的受众第一类,业务需要,急需知道如何深拷贝JS对象的开发者。第二类,希望扎实JS基础,将来好去面试官前秀操作的好学者。写给第一类读者你只需要一行黑科技代码就可以实现深拷贝varcopyObj={name:'ziwei',arr:[1,2,3]}vartargetObj=JSON.parse(JSON.stringify(copyObj))此时copyObj.arr!==targetObj.arr已经实现了深拷贝别着急走,利用window.JSON的方法做深拷贝存在2个缺点:如果你的对象里有函数,函数无法被拷贝下来无法拷贝copyObj对象原型链上的属性和方法当然,你明确知道他们的缺点后,如果他的缺点对你的业务需求没有影响,就可以放心使用了,一行原生代码就能搞定。目前我在开发业务场景中,大多还真可以忽略上面2个缺点。往往需要深拷贝的对象里没有函数,也不需要拷贝它原型链的属性。写给第二类读者下面我会尽可能全面的讲解清楚JS里对象的拷贝,要讲清楚拷贝,你需要
编写优雅的 if 语句
随着项目代码量的增多,如何优化项目代码的健壮性,是一直萦绕在脑海里,却没有停下来好好考虑的事情。总会遇到某一段函数的变量对象就突然找不到属于它的方法了,排除半天,发现参数不知道什么时候变成了undefined。而对于书写if(){}总觉得性价比不高,书写麻烦,占用空间,丑!于是总结许多经常需要写if语句,但可以用其他代替的情况。主要是变量赋值判断,函数执行判断,多种条件判断。♨if条件语句逻辑运算符简化--通过参数判断是否执行函数编写代码的过程中,我们经常面对的问题可能就是某一个函数所需要的变量可能会因为是undefined导致代码报错,按照一般的编程习惯可能更喜欢写if(Vue){console.error("blabla··")},说实话,写的我手疼····。而在Vue的源码中经常看到类似这样的一段代码Vue&&console.error("Vueisundefined")。在逻辑判断过程中,其实也函数执行的过程。·常用写法if(someThing){toDo();}·优雅写法someThing&&toDo()
angularjs 学习之 angularjs简介
Angular