一些比base64更好的东西来编码那些没有'不要占用太多的处理能力
something better than base64 to encode data that doesn't take up too much processing power
我有一个网站,用户可以在其中添加多个项目,有时URL可能很长。我想通过使用base64编码,我会传递URL,但它包含一个斜杠,我用它来分隔项目,因为我的web服务器无法处理超过255个字符的路径名(2个斜杠之间的任何名称),否则我会得到403错误。
有没有其他方法可以用javascript快速编码数据,这样结果中出现斜杠的可能性为0%?
我正在寻找一些不太需要处理器的东西,如果可能的话,我想寻找比字符交换更好的东西。
如果我需要访问一个库,我会理解的,但javascript内置的唯一编码(据我所知)是base64(通过atob函数),我想要一些不同的东西。
我还希望能够使解决方案与旧的网络浏览器一起工作。
您需要的是encodeURIComponent,它是javascript规范的一部分,并自动包含在所有javascript环境中
var url = 'example.com/someextenstion/' + encodeURIComponent(theString);
有很多方法可以解决这个问题,但最简单的方法之一是采用atob
和btoa
的实现,并在编码时将其修改为使用-
而不是/
。你必须重命名这些函数,这样它们就不会屏蔽标准函数,但这里有一些JavaScript源代码可以做到这一点:github。在该特定实现中,只需将_ALPHA
中的/
替换为-
(或您选择的任何字符)。
按照Amit的建议做可能会更快:使用标准函数,在转换时快速替换/
的字符串:str.replace(/'//g,'-');
,并在解码时执行相反的操作,但在这个应用程序中,性能似乎并不关键。
相关文章:
- 一个html元素的克隆次数太多
- ExtJS类的最佳实践最终导致了太多的.JS文件.性能怎么样
- 使用.slice分页选择了太多项目
- 堆排序实现进行了太多比较
- 如何在不每秒调用太多次的情况下通过Soundcloud解析api进行循环
- 如何修复“;太多递归”;ReactJS中的错误
- 为什么fs.readFile在windows上花费太多时间
- 如何避免webGL着色器加载给cpu带来太多负载
- node.js 需要太多的 TCP 套接字
- JavaScript循环迭代太多
- 函数崩溃,因为太多迭代jQuery
- 为什么不'当用户输入空格或字符太多/不够时,此函数会发出window.alert
- Angularjs:为什么重复做太多的工作
- Node.js错误:参数太多上传批量数据时出错
- ng重复调用控制器功能的次数太多
- 我正在验证一个联系人表单.我是不是过滤太多了
- Jquery-append函数花费了太多时间
- 在 NodeJS 中处理太多的需求
- 一些比base64更好的东西来编码那些没有'不要占用太多的处理能力
- Bootstrap collapse can'Don’不要处理太多的元素