下载 ArcGIS Javascript 引用的字体 pbf 文件,并离线部署
2023-09-11 14:21:35 时间
在使用 ArcGIS JavaScript 进行开发的时候,虽然已经把 引用的 js 和 css 文件进行了离线部署,
但是有个问题,在调用的字体文件时,也就是调用 pbf 文件时,调用的仍然是在线的,而且速度很慢,
整个页面加载的时间和加载 pbf 文件的时间差不多了,实在无法忍受,准备下载离线部署,网上搜了几个
发现要么不支持中文,要么就是要分特别高。只能自己动手写个程序下载了。
代码很简单,是 C# 的。
using System; using System.IO; using System.Net; namespace pbfDownload { class Program { static void Main(string[] args) { var regularUrl = "https://static.arcgis.com/fonts/arial-unicode-ms-regular/"; var boldUrl = "https://static.arcgis.com/fonts/arial-unicode-ms-bold/"; var regularFolder = @"D:\Fonts\regularFolder\"; //目录要先手动建好,这里主要是下载,就不循环路径自动建文件夹了。 var boldFolder = @"D:\Fonts\boldFolder\"; var NetURL = new string[2] { boldUrl, regularUrl }; var downFolder = new string[2] {boldFolder,regularFolder}; for (int u = 0; u < 2; u++) { var downurl = NetURL[u]; var downFold = downFolder[u]; for (int i = 0; i < 257; i++) { double si = i * 256; double ei = (i + 1) * 256 - 1; var fileName = si.ToString() + "-" + ei.ToString() + ".pbf"; var fileUrl = downurl + fileName; var fileDown = downFold + fileName; HttpDownloadFile(fileUrl, fileDown); } } } /// <summary> /// Http下载文件 /// </summary> public static void HttpDownloadFile(string url, string path) { try { // 设置参数 HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; //发送请求并获取相应回应数据 HttpWebResponse response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求 Stream responseStream = response.GetResponseStream(); //创建本地文件写入流 Stream stream = new FileStream(path, FileMode.Create); byte[] bArr = new byte[1024]; int size = responseStream.Read(bArr, 0, (int)bArr.Length); while (size > 0) { stream.Write(bArr, 0, size); size = responseStream.Read(bArr, 0, (int)bArr.Length); } request.Abort(); response.Close(); responseStream.Close(); stream.Close(); Console.WriteLine("File:" + path); } catch(Exception ex) { Console.WriteLine("File:" + path); Console.WriteLine("Error:"+ ex.Message); } //return path; } } }
相关文章
- javascript访问html元素的内容(1)
- JavaScript 正则表达式上——基本语法
- JavaScript中数组元素删除的七大方法汇总
- JavaScript使用localStorage缓存Js和css文件
- Win10系列:JavaScript写入和读取文件
- Windows Store App JavaScript 开发:小球运动示例
- 从零开始学_JavaScript_系列(一)初步概念、工具选择、简单内容输出、加载js文件
- Javascript aop(面向切面编程)之around(环绕)
- [Javascript] Safely Access a Property on a JavaScript Array with Optional Chaining
- [Javascript] Use requestIdleCallback to schedule JavaScript tasks at an optimal time
- [Javascript] Convert a Callback-Based JavaScript Function to a Promise-Based One
- [Javascript] Improve Composition with the Compose Combinator
- [Javascript] Iterate Over Items with JavaScript's for-of Loop
- [Javascript] Linting JavaScript with ESLint
- 你想不到的压缩方法:将javascript文件压缩成PNG图像存储
- [Algorithms] Refactor a Loop in JavaScript to Use Recursion
- javascript函数
- 部署在SAP ABAP服务器上的SAP UI5应用的JavaScript文件,是如何被SAP UI5 repository handler处理的
- 使用ABAP和JavaScript代码生成PDF文件的几种方式
- 100行代码让您学会JavaScript原生的Proxy设计模式
- JavaScript与有限状态机
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
- 使用ABAP和JavaScript代码生成PDF文件的几种方式
- 部署在SAP ABAP服务器上的SAP UI5应用的JavaScript文件,是如何被SAP UI5 repository handler处理的
- javascript案例24——班级成绩求和、求平均值
- cordova js(javascript)读取本地文件(将本地的bin文件转成字节数组)
- Javascript 原型链资料收集
- web前端Javascript开发学习之JavaScript中的预编译如何进行
- web前端Javascript学习之了解JavaScript弹出框