formdata

el-select数据过多懒加载(loadmore)

喜你入骨 提交于 2019-11-29 16:46:25
el-select数据过多处理方式 在日常项目中 el-select 组件的使用频率是非常之高的. 当数据过多时渲染时间非常长, 这里提供几个处理方式. 远程搜索 组件提供了远程搜索方式, 也就是按照你输入的结果匹配选项. 官网提供了 参考示例 ; 这里不加赘述. 下拉懒加载loadMore 下拉懒加载, 当select滚动到底部时, 你再去请求一部分数据, 加入到当前数据中. 某组件中: <template> <el-select v-model="value" placeholder="请选择" filterable multiple v-el-select-loadmore="loadmore" > <el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.id"> </el-option> </el-select> </template> export default { directives: { 'el-select-loadmore': { bind(el, binding) { // 获取element-ui定义好的scroll盒子 const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el

javascript权威指南第21章 Ajax和Comet

只谈情不闲聊 提交于 2019-11-29 15:00:49
function createXHR(){ if(typeof XMLHttpRequest !='undefined'){ return new XMLHttpRequest(); }else if(typeof ActiveXObject!='undefined'){ if(typeof arguments.callee.ActiveXString!='string'){ var versions =['MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp'],i,len; for(i=0,len=versions.length;i<len;i++){ try { //判断是否能成功创建当前版本的ActiveObject new ActiveXObject(versions[i]); arguments.callee.ActiveXString =versions[i]; //如果能设置当前对象的参数 break; } catch (error) { //跳过 } } } return new ActiveXObject(arguments.callee.ActiveXString); //根据当前函数的参数创建ActiveXObject } else{ throw new Error('No XHR object

scrapy抓取豆瓣电影相关数据

强颜欢笑 提交于 2019-11-29 13:12:39
1. 任务分析及说明 目标网站: https://movie.douban.com/tag/#/ 抓取豆瓣电影上,中国大陆地区,相关电影数据约1000条;数据包括:电影名称、导演、主演、评分、电影类型、语言、上映时间、短评top20等数据; 1.1 Fiddler抓包要点分析: 请求均为GET请求;拼接后的URL为是 https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=电影&start=0 其中,range表示评分区间(0,10表示筛选评分在0-10之间的电影); tags表示分类类别(电影?剧集?); 第一次请求默认返回20部电影相关信息,start=0; 点击加载更多start=20,即每次点击一次加载更多,start增加20; 返回数据为json格式,数据包括电影名称、导演、电影详情的URL等信息; 从json数据中提取电影详情页的URL,访问并抓取详情信息; 抓取电影短评时,只抓取了最前面的20条,并利用//拼接成一个字符串,数据保存为excel形式。 2. 代码逻辑 2.1 项目创建 利用scrapy的基本命令创建项目、爬虫等,在此不细说,直接上命令。 scrapy startproject DoubanMovie # 创建项目cd DoubanMovie # 进入项目目录scrapy

vue做时间段搜索

泪湿孤枕 提交于 2019-11-29 06:37:39
所呈现的效果 这里的时间是设置默认从当天00:00:00开始,到所查询结束的23:59:59结束 代码是用element中DateTimePicker 日期时间选择器 用el-form进行的包裹 <el-form-item label="日期"> <el-date-picker v-model="formData.start" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss" :default-time="'00:00:00'" > </el-date-picker> - <el-date-picker v-model="formData.end" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss" :default-time="'23:59:59'" > </el-date-picker> </el-form-item> 在data中定义 点击搜索 <el-form-item> <el-button type="primary" @click="search()">搜索</el-button> </el-form-item> search(){ let data = { asin:this

angularjs完整demo例子

怎甘沉沦 提交于 2019-11-29 05:39:46
 AngularJS的主要特点是 mvc 数据双向绑定 分模块 依赖注入      mvc m: $Scope 变量 V:视图 c:controller=function(){} 控制器 方法      Angularjs的用法 1.在一个有起始标签的元素开始标签内使用 ng-app来指定angularjs的作用范围 2.angularJS的表达式是双大括号 {{}} 里面可以显示变量,数学运算,执行方法 3.ng-model=“变量名” 在输入框内可以绑定一个变量,此变量前端输入的值和js代码中的值是双向绑定的,一个变了都变了,并且使用此变量的地方都发生改变 4.ng-init=“变量名=‘变量值’” 一般加在body的起始标签内 初始化变量 也可以初始化方法 相当于onload方法      通常一个项目有一个angularJS模块,一个页面又一个angularJS的控制器 ng-app=“模块名” ng-app后面也可以指定模块名,如果定义控制器必须先定义模块对象,模块对象必须有名字 如果不定义控制器简单实用angularJS则直接ng-app指定作用范围也可      定义模块及定义控制器需要在js代码块中完成 在body属性里只能指定模块的名字和控制器的名字以及简单的使用      var app=angular.module(‘模块名’,[‘引入的模块名’])

SpringSecurity remember-me功能

◇◆丶佛笑我妖孽 提交于 2019-11-29 02:20:18
1、/login .and().formLogin().loginPage("/user/login.html") //在successHandler中,使用response返回登录成功的json即可,切记不可以使用defaultSuccessUrl,defaultSuccessUrl是只登录成功后重定向的页面,failureHandler也是由于相同的原因不使用failureUrl。 .loginProcessingUrl("/login").successHandler( new AuthenticationSuccessHandler(){ @Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException { //System.out.println(authentication.getDetails()); httpServletResponse.setContentType("application/json;charset=utf-8");

JQ 上传文件(单个,多个,分片)

最后都变了- 提交于 2019-11-29 00:35:21
最原始的方式: 前端代码: <div> <span>最原始的方式</span><br /> <span>条件1:必须是 post 方式</span><br /> <span>条件2:必须注明是传输文件 enctype="multipart/form-data"</span><br /> <span>条件3:必须设置name属性,name="myFile"</span><br /> <form id="myForm1" method="post" enctype="multipart/form-data" action="http://localhost:42561/api/upload/upload"> <input type="file" name="myFile" /> <input type="submit" value="原始form表单上传文件" /> </form> </div> 后台代码: public async Task<HttpResponseMessage> Upload() { var files = HttpContext.Current.Request.Files; var path = HttpContext.Current.Server.MapPath("/img/"); if (files.Count > 0) { foreach (string

大型表单数据的获取

孤街醉人 提交于 2019-11-28 20:56:47
   如果表单数据量小的话直接通过id或者name属性即可获取数据, 但如果表单有几十上百个input 或 textarea呢?就像下面这样的表单: 一个个的获取数据很麻烦, 可以考虑用FormData + for循环获取数据 给表单的form添加一个id="FormData", 用选择器获取form元素然后传给FormData对象 代码如下: <form id='formData'> <input type='text' name='name' value='zhou'> <input type='text' name='age' value='20'> <input type='text' name='sex' value='男'> </form> <script> let fd = new FormData(document.getElementById('formData')); for (let [name, value] of fd) {    console.log("name, value",name, value);      } </script> 这样就可以获取表单的所有数据了. 但是存在问题, 如果input有相同的name属性只能获取到一个值, 后面的会把前面的覆盖, 对于大表单很可能会有相同的name属性, 比如 项目名称 项目领导人姓名 技术负责人姓名

.Net使用HttpClient以multipart/form-data形式post上传文件及其相关参数

一世执手 提交于 2019-11-28 20:56:44
前言:   本次要讲的是使用.Net HttpClient拼接multipark/form-data形式post上传文件和相关参数,并接收到上传文件成功后返回过来的结果(图片地址,和是否成功)。可能有很多人会说用ajax不是就可以轻松的实现吗?的确是在不存在跨域问题的前提下使用ajax上传文件,接收返回结果是最佳的选择。无奈的是我们对接的是第三方的一个上传图片的接口,而且对方并没有对我们的域名设置允许跨域,为了能够解决这一问题我们只能够通过后端请求避免跨域问题。 什么是multipart/form-data请求: 关于multipart/form-data详情查看: https://www.cnblogs.com/tylerdonet/p/5722858.html Html上传图片按钮: <div class="cover-hd"> <a href="javascript:;" class="a-uploadCustom"> <input type="file" id="Logoimg" onchange="OnchangeImage(this)" /></a> </div> 使用ajax将图片文件流和相关参数传递到后端进行拼接: 注意:因为我这里调用第三方接口需要传递(appid应用程序唯一标识,random随机数,和sign签名) <script type="text

子组件watch不到父组件传递的props变化

久未见 提交于 2019-11-28 20:11:23
** 子组件watch不到父组件传递的props变化 ** 父组件: :formData='data' data: {id:'',ip:'',name:''}, 子组件: props: ["formData"], 这是检测不到变化的。 handleNodeClick(data) { this.data.id = data.id; this.data.name = data.label; this.data.ip = this.datas[data.id][0]; }, 这是能检测到变化的。 handleNodeClick(data) { var newData = {id:data.id,ip:this.datas[data.id][0],name:data.label} this.data = newData; }, 来源: https://blog.csdn.net/qq_36145663/article/details/100124222