【工作细节记录】维护项目中前端JS组件丢失后,应如何维护开发之启发
2024-09-06 08:12:22
事因:
我所维护的项目为旧项目,接手项目后并没有什么开发文档留下,导致很多时候一出现问题就需要自己去研究整个过程。
项目中一直使用一个"$.download()"的方法进行文件下载。后续出现很奇怪的情况,我将原本项目的js都引用到新的项目中去,
可是在我的环境中无法成功执行,在另一位同事的环境下却可以正常执行。(若看到此文章的大神能提供一些比较好的解决
方式给我亦可以留言,十分感谢!)
小白之一些维护开发想法:
倘若原本的方法,作为一个开发者的你,并不了解究竟有多少处使用。很多开发者都会自己重写这个方法支持原本调用。
考虑到现在的项目仅几处使用。均改使用form提交,实现下载功能。
以下转载 :https://www.cnblogs.com/hamsterPP/p/6763458.html
实现过程:
已知一个下载文件的后端接口,前端如何请求该接口,实现点击按钮、下载文件到本地。
【体验非常不好】方法一:window.open("下载文件的后端接口");
*html结构*
<button type="button" id="btn1">下载一个zip(方法1)</button>
<button type="button" id="btn2">下载一个zip(方法2)</button>
/*js部分*/
var $eleBtn1 = $("#btn1");
var $eleBtn2 = $("#btn2"); //已知一个下载文件的后端接口:https://codeload.github.com/douban/douban-client/legacy.zip/master
//方法一:window.open()
$eleBtn1.click(function(){
window.open("https://codeload.github.com/douban/douban-client/legacy.zip/master");
});
然而有个问题:浏览器会打开一个新窗口,然后迅速自动关闭,体验非常不好。
方法二:通过form提交
由于ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以通过ajax去请求该接口是无法下载文件的,所以我们创建一个新的form元素来请求接口。
/*js部分*/
//方法二:通过form
$eleBtn2.click(function(){
var $eleForm = $("<form method='get'></form>"); $eleForm.attr("action","https://codeload.github.com/douban/douban-client/legacy.zip/master"); $(document.body).append($eleForm); //提交表单,实现下载
$eleForm.submit();
});
最新文章
- NodeJs之Path
- WPF入门教程系列二十三——DataGrid示例(三)
- 深入浅出话VC++(2)——MFC的本质
- [转载]Soap安全测试入门
- I.MX6 bootargs 内核参数设定
- (二)OJ的主要文件
- [C语言 - 12] Union联合
- Linux shell编程02 shell程序的执行 及文件权限
- zoj 3471Most Powerful
- C#和NewSQL更配 —— CockroachDB入门(可能是C#下的全网首发)
- POI操作Excel的API注意点总结
- 基本 SQL 之增删改查(一)
- RBAC 几种常见的控制权限模型
- MySQL学习笔记2(多表操作)
- Ubuntu/Debian nginx 简介
- [C#][EF] 添加表添加不进来
- redis 配置文件示例
- c :函数指针具体解释
- wikioi1036 商务旅行 挺水的lca
- mdk3攻击实例