首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
scheme
js
checkbox
npm
button
上传
vue.js
jq
css3
javascript
json
vue
requirejs
css
focus
ajax
yarn
chart
html
dialog
jquery
hover
v8
charts
build
layout
base64
postman
iframe
scroll
微信开发
chrome
node.js
textview
firebug
icons
overflow
bootstrap
firefox
dom
hybrid
cookies
console
view
listview
正则
webkit
label
html5
svg
react
当前位置:
开发笔记
>
前端
> 正文
数组方法解决JS字符串连接性能问题有争议_javascript技巧
作者:洛熙难耐_467 | 来源:互联网 | 2018-06-17 08:22
大多数情况下,加法运算符是首选;如果用户主要使用IE6或7,并且字符串大小较大或数量较多时,那么数组技术就很值得。
1、传统上,字符串连接一直是js中性能最低的操作之一。
var text="Hello";
text+=" World!";
早期浏览器没有对这种运算进行优化。
由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性能异常低下。
2、发现这一点后,开发者们利用数组对象进行优化。
var buffer=[],i=0;
buffer[i++]="Hello";//通过相应索引值添加元素比push方法快
buffer[i++]=" World!";
var text=buffer.join("");
在早期的浏览器中,没有创建和销毁中间字符串,在大量字符串连接情况下,这技术已被证明远快于使用加法方式。
3、如今浏览器对字符串的优化已经改变了字符串相连的局面。
Safari、Opera、Chrome、Firefox和IE8都在使用加法运算符上表现出了更好的性能。但是,IE8之前的版本没有优化,因此数组方法依然有效。
这并不意味着字符串相连时我们要进行浏览器检测。在决定如何连接时要考虑的是字符串的大小和数量。
1)当字符串相对较小(<20字符)且连接数量也较小时(<1000个),所有的浏览器使用加法运算符都能在不到1豪秒内轻松完成连接。
2)增加字符串数量或大小时,IE7中性能会明显下降。
3)字符串大小增加时,Firefox中加法运算符和数组成技巧性能差异会变小。
4)字符串数量增加时,Safari中加法运算符和数组成技巧性能差异会变小。
5)改变字符串数量或大小时,Chrome和Opera中加法运算符一直保持领先优势。
所以,由于在各浏览器下性能不一致,选用技术取决于实际情况和面对的浏览器。
大多数情况下,加法运算符是首选;如果用户主要使用IE6或7,并且字符串大小较大或数量较多时,那么数组技术就很值得。
safari
chrome
firefox
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
jquery
Voicewo在线语音识别转换jQuery插件的特点和示例
本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ...
[详细]
蜡笔小新 2023-12-13 20:01:16
jquery
macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ...
[详细]
蜡笔小新 2023-12-10 19:53:41
css
常用的CSS属性及用法整理
本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ...
[详细]
蜡笔小新 2023-12-09 03:01:43
html
CSS |网格行结束属性
CSS|网格-行-结束属性原文:https://www.gee ...
[详细]
蜡笔小新 2023-10-17 15:21:56
html
css元素可拖动,如何使用CSS禁止元素拖拽?
一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ...
[详细]
蜡笔小新 2023-10-17 14:35:15
css
CSS背景位置y | backgroundpositiony
css,背景,位置,y,background, ...
[详细]
蜡笔小新 2023-10-16 16:28:38
html
pyecharts 介绍
一、pyecharts介绍ECharts,一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部 ...
[详细]
蜡笔小新 2023-10-16 08:29:03
build
使用 Ubuntu 中的 Python 获取浏览器历史记录
使用Ubuntu中的Python获取浏览器历史记录原文: ...
[详细]
蜡笔小新 2023-12-14 08:57:59
build
页面请求方法参数最长_关于 HTTP GET/POST 请求参数长度最大值的一个理解误区
http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ...
[详细]
蜡笔小新 2023-12-13 19:20:03
build
获取关联数组键的列表的方法及浏览器支持
本文介绍了获取关联数组键的列表的方法,即使用Object.keys()函数。同时还提到了该方法在不同浏览器的支持情况,并附上了一个代码片段供读者参考。 ...
[详细]
蜡笔小新 2023-12-11 22:11:22
上传
编写可保护的代码的重要性及优化方法
本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ...
[详细]
蜡笔小新 2023-12-11 18:32:44
v8
JavaScript简介及语言特点
本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ...
[详细]
蜡笔小新 2023-12-10 17:45:49
html
网页播放视频的三种实现方式
本文介绍了网页播放视频的三种实现方式,分别是使用html5的video标签、使用flash来播放以及使用object标签。其中,推荐使用html5的video标签来简单播放视频,但有些老的浏览器不支持html5。另外,还可以使用flash来播放视频,需要使用object标签。 ...
[详细]
蜡笔小新 2023-12-10 13:24:30
html
火狐Firefox ios版本二次开发 (四) 源码精简
对Firefoxios源码的精简Firefox的依赖使用carthage来进行管理,国内的网络是在过于坑爹,相关的依赖包总是无法下载下来,花了两天时间,手动将Firefox所依赖的库导入 ...
[详细]
蜡笔小新 2023-10-17 14:50:00
css
(PC+WAP)织梦模板户外设备类网站
模板介绍:织梦内核开发的模板,该模板属于户外设备、宣传栏类企业都可使用,这款模板使用范围极广,不仅仅局限于一类型的企业 ...
[详细]
蜡笔小新 2023-10-16 10:18:24
洛熙难耐_467
这个家伙很懒,什么也没留下!
Tags | 热门标签
scheme
js
checkbox
npm
button
上传
vue.js
jq
css3
javascript
json
vue
requirejs
css
focus
ajax
yarn
chart
html
dialog
jquery
hover
v8
charts
build
layout
base64
postman
iframe
scroll
RankList | 热门文章
1
Java native方法
2
中国天气网api不能用了?
3
CentOS 中 is not in the sudoers file 解决方法
4
C++中对vector所有元素求和
5
手气|适应性_金融量化CTA策略的构成
6
python翻转课堂_翻转课堂
7
关于SQLSERVER的全文目录跟全文索引的区别
8
java rpc与webservice_RPC和WebService的区别
9
《善哉行》翻译 原文赏析诗人魏晋曹丕
10
图文详解:CentOS 7系统下安装JupyterHub+PySpark
11
artdialog 遮罩层 ie下显示一半
12
Hdu 4280 Island Transport(最大流)
13
线性代数笔记(6):内积空间(下)
14
前端报错问题解决办法:Acompletelogofthisruncanbefoundin:npmERR!C:\Users\pc\AppData\Roamingpmcache\_logs
15
PHP 在父类中调用子类的 静态属性 或 静态方法
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有