轶哥

📚 Having fun with AI Agent. Always learning.

Vue3.0 + Vite 绝佳的开发体验
  •   更新:2020-08-21 09:25:09
  •   首发:2020-08-20 18:52:31
  •   JavaScript
  •   6578

Vite是一个尤大开发的革命性的Web构建工具。

Vite是基于浏览器原生ES Module imports的构建工具。很多场景下,Vite可以代替webpack,开发调试的速度有了非常大的提升。Vite支持对单个文件的热更新,调试一行代码等很久的情况或将成为历史。

vite是法语中“ fast”的意思,其发音是/vit/

Office(Word Excel PPT)转PDF-开放API
  •   更新:2020-08-13 18:16:12
  •   首发:2020-05-04 18:06:30
  •   JavaScript
  •   5263

大约5年前,我在做一个云打印的软硬件一体化项目,其中很关键的一步是通过API将客户发来的Office文档转换为PDF文档进行预览,然后再发送到对应的打印机进行打印,以PDF预览的方式来确保所见即所得。因此当时开发了此API,一直使用至今,历经数次迭代,如今已经很稳定。

现今免费将此API开放给大家进行使用(因服务器成本较高,不排除将来进行收费的可能。如若将进行收费,我会提前至少两个月联系您。即使收费,我承诺此API仅收取成本费用)。API部署在多地服务器,使用阿里云API网关进行中转。

解决XML报错:Input is not proper UTF-8, indicate encoding
  •   更新:2020-07-21 00:21:16
  •   首发:2020-07-21 00:14:40
  •   JavaScript
  •   4850

如果使用Chrome浏览器访问XML地址,返回报错信息:

Input is not proper UTF-8, indicate encoding !
Bytes: 0x08 0xE6 0xBA 0x90

这是由于返回回来的数据存在ASCII控制字符。XML规范不支持这部分控制字符。

这个报错提示是Chrome浏览器生成的报错,不是服务器端返回的报错。

关于该报错的详细信息请参阅:《PRB: Error Message When an XML Document Contains Low-Order ASCII Characters》。

K个一组翻转链表
  •   更新:2020-05-16 21:10:05
  •   首发:2020-05-16 21:04:29
  •   JavaScript
  •   3651

LeetCode 25. K 个一组翻转链表 https://leetcode-cn.com/problems/reverse-nodes-in-k-group/
LintCode 450. K组翻转链表 https://www.lintcode.com/problem/reverse-nodes-in-k-group/

这是一道用常规思路就能解的算法题。目标清晰、题目易懂,不涉及复杂的算法。

按照题目要求,遍历链表,遍历的同时每经过k个节点就进行一次翻转。需要注意的是,第一次翻转后,记录下整个链表的head作为返回值。从第二次翻转开始,需要将之前翻转过的最后一个结点与新翻转后的第一个结点相连。

JS推测Base64图片类型
  •   更新:2019-03-04 15:01:42
  •   首发:2019-02-23 22:21:25
  •   JavaScript
  •   27686

部分业务中会碰到Base64图片文本。

例如:

  • 微信JS-SDK - “拍照或从手机相册中选图接口”,wx.chooseImage与wx.request结合获取Base64数据。“获取本地图片接口”,wx.getLocalImgData返回Base64数据。
  • 微信小程序中,图片访问地址受到白名单限制,有可能采用base64数据直接在接口返回。
  • 某种读卡器获取到的图片数据以Base64格式返回。

如果返回的图片数据中不包含格式前缀(甚至某个微信接口在ios中错误返回image/jgp类型),那就需要推测图片类型。

Electron 预加载远程页面提升用户体验
  •   更新:2019-01-23 21:00:19
  •   首发:2019-01-23 20:44:32
  •   JavaScript
  •   10404

使用场景

Electron 内置 ChromiumNode.js,为了提升用户体验,通常 Electron 封装的前端静态文件存储在客户端本地。但总有一些特殊情况,会使用到部分远程页面。

比如微信扫码登录,需要远程访问微信的登录站点,获得扫码结果后跳转到我们自己的服务器,然后通知到主进程来关闭对应的渲染进程。目前这个问题有更高效的解决方案,详见博文《无刷新微信扫码登陆解决方案》

再比如,部分页面还没有实现前后端分离,为了产品尽快上线,也需要嵌入远程URL。

直接在Electron中访问远程地址是有风险的,控制远程地址切回本地页面也是较为繁琐的。

以上需求可以使用webview标签实现。这是Electron为我们提供的一个特殊组件,类似于iframe但跟iframe不同,确保了应用的安全性。类似于AndroidioswebviewCrosswalk,Electron中的webview也支持和渲染进程相互通讯。

  上一页 下一页