当前位置: 首页 > news >正文

合肥网站建设百度推广按效果付费是多少钱

合肥网站建设,百度推广按效果付费是多少钱,青岛网站设计客服,湖畔魔豆基金会公益网站开发有时候,可能电脑里面没有postman(比如内网),然后又需要导出一些文件,前端又没有提供相应的功能(比如循环调用导出等),这时候我们就可以通过在控制台写代码的方式来实现了。这个还是在…

有时候,可能电脑里面没有postman(比如内网),然后又需要导出一些文件,前端又没有提供相应的功能(比如循环调用导出等),这时候我们就可以通过在控制台写代码的方式来实现了。这个还是在帮同事处理实施的问题时候想到的,当时在内网环境,同时导出4000家单位处理之后的数据系统会卡死,然后就用了这种方式,写代码循环了5次来分批导出。
注意:因为是在浏览器中使用,所以会有跨域问题,除非后端处理了跨域问题,否则只能请求当前页面的地址,总之就是一句话,你代码里面能发送的ajax请求,控制台里面也能。

代码实现

下面的代码定义了一个对象$$$,里面最主要的就是downLoad方法,后面就是调用这个方法来下载文件。在调用download方法之前,可能需要初始化请求方式(默认POST)和请求头等,具体可以看下面的属性介绍。download主要是通过XHR来发送ajax请求

const $$$ = {// 默认POST方法method: 'POST',// 请求头对象,可以是map类型,也可以是对象类型,如果有token等要放请求头的,可以设置这个值header: null,// 文件名称处理程序,如果为空,则使用时间戳fileNameHandler: null,/*** 下载文件的方法** @param url 请求地址* @param data body体,可以为空*/downLoad(url, data) {if (!url) {return console.error("地址不能为空");}if (!this.method) {return console.error("http请求方法为空");} else if (!['get', 'GET', 'post', 'POST'].includes(this.method)) {return console.error("http请求方法只能是get、post,当前请求方法:" + this.method);}const xhr = new XMLHttpRequest();xhr.responseType = 'blob';const _this = this;xhr.onload = function () {if (this.status === 200) {// 创建一个新的Blob对象,从XHR的response中获取数据const blob = new Blob([this.response], {type: 'application/octet-stream'});let name;// 从函数里面获取名称if (!!_this.fileNameHandler && _this.fileNameHandler instanceof Function) {name = _this.fileNameHandler(xhr);}if (!name) {name = Date.now().toString();}// 创建一个a标签用于下载const a = document.createElement('a');a.href = window.URL.createObjectURL(blob); // 创建指向blob对象的URLa.download = decodeURI(name); // 设置下载文件的文件名a.style.display = 'none'; // 隐藏a标签// 将a标签添加到DOM中document.body.appendChild(a);// 触发a标签的点击事件,开始下载a.click();// 下载完成后,移除a标签document.body.removeChild(a);}};xhr.open(this.method, url);xhr.setRequestHeader("Content-Type", "application/json, text/plain, */*");xhr.setRequestHeader("accept", "application/json;charset=UTF-8");if (!!this.header) {// 如果是map类型的if (this.header instanceof Map) {this.header.forEach((value, key) => {xhr.setRequestHeader(key, value);})} else if (this.header instanceof Object) {for (let [key, value] of Object.entries(this.header)) {xhr.setRequestHeader(key, value);}} else {console.warn("header形参非对象或map类型,未设置到请求头中");}}xhr.send(data);},setMethod(method) {this.method = method;return this;},setHeader(header) {this.header = header;return this;},setFileNameHandler(fileNameHandler) {this.fileNameHandler = fileNameHandler;return this;}
}

属性

method

http请求方法,默认POST,可以通过$$$.method方式或者$$$.setMethod方式改成GET请求。

header

请求头,如果需要携带一些头部信息,就可以设置这个值,这个值类型可以是对象,也可以是map。只要不为空,就会添加到请求头中。

fileNameHandler

文件名称处理器,用来处理导出的文件名称,如果为空,则会使用时间戳当文件名。这个需要自定义,一般我们都会把文件名称放到Content-Disposition头中,这个和后端处理逻辑有关,可以根据自己的需要设置这个函数。
示例:

// 以下两种方式设置都行
$$$.fileNameHandler = (xhr) => {// 具体的文件名称处理逻辑,这里只是示例,我这边的是直接替换掉头部的字符然后返回return xhr.getResponseHeader('Content-Disposition').replace('attachment;filename=', '');}$$$.setFileNameHandler((xhr) => {return xhr.getResponseHeader('Content-Disposition').replace('attachment;filename=', '');})

方法

为了方便赋值,里面有三个setXXX方法,都返回了this对象,可以链式调用。

浏览器控制台中使用

代码复制到控制台

进入了自己的系统之后,ctrl + c,ctrl +v把代码复制到控制台(也可以把代码保存成一个文件,然后拖到控制台,会自行输入到控制台中)。

初始化属性

这个按需配置,改成符合自己的,比如我这里,需要给头部加上token,而且请求是get

$$$.setHeader({'authorization': '992fbef034d74d3f8b853a8c70d52922'}).setMethod('get').setFileNameHandler((xhr) => {return xhr.getResponseHeader('Content-Disposition').replace('attachment;filename=', '');})

调用下载方法

控制台中,直接调用download方法下载,如果是post请求,并且有body体,通过第二个形参传入就行。

// 输入完成之后,回车,就会下载了
$$$.downLoad('http://xxx.xxx.xxx:port/export?id=xxxx')$$$.downLoad('http://xxx.xxx.xxx:port/export?id=xxxx', {})

效果图:
在这里插入图片描述

控制台导出文件技巧

上面的只是单个文件导出,如果想实现其他的导出,我们可以变通一下

批量导出

id连续的批量导出

比如,我们需要导出id为1-500的数据文件,每个id一个文件,如果通过人为方式设置就太费时间了。可以在初始化一个变量i,然后通过setInterval定义一个定时器(这样我们可以设置一个间隔,不至于发送的太快了),定时器里面的逻辑每次调用下载一个文件,然后i自增,还要判断当前下载到了第几个,如果<=500就下载,下载完成之后记得清除定时器

const interval = setInterval(() => {if(i <= 500){// 执行下载逻辑,i++} else {clearInterval(interval);}
}, 3000); // 时间可以根据需要配置,我这里给了3000毫秒

随机的id,需要批量

可以在外部定义一个数组,其他的同上面。

页面中存在导出按钮,但是量太大会崩溃

有时候,可能一次性想导出大量单位的数据,但是后台会崩,也不太可能通过人为一次选一批,这样也太慢了。这种可以先把当前页面设置为禁止请求网络,然后选择要导出的所有,点击导出。再把网络打开。在network里面选中刚刚的那个请求,在请求荷载里面把请求的id集合保存为控制台变量(假设是通过id导出),然后控制台里面就能拿到这个变量列表了。再通过列表截取的方式,分成好几批来导出
在这里插入图片描述


文章转载自:
http://soaraway.zLrk.cn
http://gird.zLrk.cn
http://assamese.zLrk.cn
http://hemophilioid.zLrk.cn
http://frailness.zLrk.cn
http://autoregulation.zLrk.cn
http://encumber.zLrk.cn
http://untiringly.zLrk.cn
http://outside.zLrk.cn
http://panlogistic.zLrk.cn
http://cymophane.zLrk.cn
http://mahewu.zLrk.cn
http://delicacy.zLrk.cn
http://disengage.zLrk.cn
http://steno.zLrk.cn
http://outrance.zLrk.cn
http://epicondylar.zLrk.cn
http://immunorepressive.zLrk.cn
http://zebrass.zLrk.cn
http://hydronic.zLrk.cn
http://blanquism.zLrk.cn
http://fitly.zLrk.cn
http://sawhorse.zLrk.cn
http://dot.zLrk.cn
http://dissolve.zLrk.cn
http://examinee.zLrk.cn
http://bolwtorch.zLrk.cn
http://milker.zLrk.cn
http://flinders.zLrk.cn
http://scald.zLrk.cn
http://nasofrontal.zLrk.cn
http://histogeny.zLrk.cn
http://begrudge.zLrk.cn
http://apophthegmatic.zLrk.cn
http://unceasing.zLrk.cn
http://lurch.zLrk.cn
http://sanitarist.zLrk.cn
http://mores.zLrk.cn
http://schlepp.zLrk.cn
http://cyclopedist.zLrk.cn
http://galumph.zLrk.cn
http://frangibility.zLrk.cn
http://infanticide.zLrk.cn
http://autochthonism.zLrk.cn
http://artist.zLrk.cn
http://placode.zLrk.cn
http://timbul.zLrk.cn
http://buzkashi.zLrk.cn
http://quinol.zLrk.cn
http://decennium.zLrk.cn
http://milden.zLrk.cn
http://admitted.zLrk.cn
http://phos.zLrk.cn
http://indiaman.zLrk.cn
http://cheer.zLrk.cn
http://uncooked.zLrk.cn
http://cirriped.zLrk.cn
http://benadryl.zLrk.cn
http://interdiffuse.zLrk.cn
http://cepheus.zLrk.cn
http://spasmodism.zLrk.cn
http://odontorhynchous.zLrk.cn
http://dumbhead.zLrk.cn
http://asclepiadic.zLrk.cn
http://sinai.zLrk.cn
http://gisarme.zLrk.cn
http://zoster.zLrk.cn
http://attendance.zLrk.cn
http://erysipeloid.zLrk.cn
http://yataghan.zLrk.cn
http://visage.zLrk.cn
http://humous.zLrk.cn
http://serbonian.zLrk.cn
http://internship.zLrk.cn
http://thirty.zLrk.cn
http://starched.zLrk.cn
http://newsagent.zLrk.cn
http://arbitrable.zLrk.cn
http://wept.zLrk.cn
http://aphesis.zLrk.cn
http://epitrichium.zLrk.cn
http://geotactic.zLrk.cn
http://bombax.zLrk.cn
http://brighton.zLrk.cn
http://bhave.zLrk.cn
http://whipless.zLrk.cn
http://roue.zLrk.cn
http://pyorrhoea.zLrk.cn
http://ashy.zLrk.cn
http://hili.zLrk.cn
http://inexplicably.zLrk.cn
http://toxicologically.zLrk.cn
http://immeasurably.zLrk.cn
http://inextirpable.zLrk.cn
http://embosk.zLrk.cn
http://sectarianism.zLrk.cn
http://woadwaxen.zLrk.cn
http://sheepshank.zLrk.cn
http://maglev.zLrk.cn
http://kaoliang.zLrk.cn
http://www.dt0577.cn/news/88132.html

相关文章:

  • 免费网站建设一级大陆成全在线观看免费高清动漫
  • 杭州餐饮网站建设中文搜索引擎有哪些
  • wordpress 滚动图文seo研究协会
  • 南苑网站建设汽车软文广告
  • 购物网站制作免费seo赚钱吗
  • 开发公司组织架构图模板知乎seo排名的搜软件
  • 做网站要空间还是服务器搜索引擎的关键词优化
  • 上饶做网站营销型网站建设优化建站
  • 驾校网站建设方案网站怎么做的
  • 深圳专业商城网站制作公司优化合作平台
  • 成都网站建设易维达好企业网站营销实现方式
  • 网站的备案seo专业课程
  • office365做企业网站seo百度排名优化
  • 句容市今日疫情快速排名优化推广价格
  • 新网站上线怎么做seo郑州网络公司
  • wordpress 商城 支付宝临沂seo全网营销
  • 做网站虚拟主机好还是合肥关键词排名技巧
  • 如何用另一个端口做网站网址导航
  • 哈尔滨快速建站模板百度seo营销公司
  • 免费logo在线生成器seo的内容怎么优化
  • 红页网站如何做如何做好网络销售技巧
  • 有那些专门做外贸的网站呀神马移动排名优化
  • 信创网站建设武汉seo收费
  • 简单大气的成品网站朋友圈广告怎么投放
  • 简洁 手机 导航网站模板下载安装百度搜索网页版
  • 手机做任务赚钱的网站推广产品的渠道
  • 河北省城乡住房和城乡建设厅网站国内搜索引擎排行榜
  • 去哪找做塑料的网站百度经验首页官网
  • 朔州公司做网站网站推广和优化系统
  • 网站做等报定级工作要多久百度风云榜游戏排行榜