在Web应用开发中,特别是前端开发中,经常会碰到的一个问题是时间选择问题,幸好Bootstrap已经为我们提供了时间选择控件datetimepicker,但在datetimepicker的实际开发使用中仍然会有一些小问题,例如根据国家来进行显示时间的时区变换。作者也是碰了好多坑之后才把这个控件的用法弄清楚了,记录一下以便给后来者提供参考。
赵辛贵,携程无线开发高级技术经理,目前主要负责React Native框架在携程内部的使用推广和性能优化 React Native(下文简称RN)开源已经一年多时间,国内各大互联网公司都在使用,携程
React Native(下文简称 RN)开源已经一年多时间,国内各大互联网公司都在使用,携程也在今年 5 月份投入资源开始引入,并推广给多个业务团队使用,本文将会分享我们遇到的一些问题以及我们的优化方案。 一、背景和使用情况介绍 为什么会引入 React Native? 1. AppSize 占用 携程旅行 App 从 11 年开始开发,至今已有 5 年多时间,随着各项业务功能的全面移动化,以及公司“Mobile first”策略的指引下,App 功能越来越多,越来越臃肿,Size 达到将近 100MB。
在前不久的WWC22中,builder.io的CTO 「miško hevery」(同时也是Angular/AngularJS的发明者)发表了一段充满想象力的演讲。
这是第 102 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:V8 执行 JavaScript 的过程 https://www.zo
在开发的过程中,会遇到各种各样的错误,由于我们是人,不是机器,没有办法避免这样的错误,既然没有办法避免,那好歹在出错的地方提示我一下啊,这总不过分吧!但遗憾的是由于JS本身的缺憾导致它做不到。
回首对nodejs的源码研究,时间已经过去了一年多。我很喜欢js这门语言,有时候感觉他和c语言一样,在c语言里,很多东西都需要自己实现,让我们可以发挥无限的创造力和想象力,js虽然很多东西在v8里已经提供,但是用js,依然可以创造很多好玩的东西,还有好玩的写法。js应该我见过唯一的一门没有实现网络和文件功能的语言。或者说没有向用户提供这种功能。这也是我对js最大的偏见。因为网络和文件,是一个很重要的能力。对于程序员来说,也是很核心很基础的知识。因为js的使用场景是运行在浏览器。如果js提供了文件操作的话,这就意味着js可以访问用户电脑上面的数据,这也是不显示的,所以,js不可能会提供这样的能力,让我们可以像其他语言一样,随意操作用户的资源。
建立此公众号,本意就是想着平时反正也是在拿着手机看微信,不如无聊时看看一些js实例,巩固并提高一下js代码编写。所以,志同道合的友友们,跟我一起,去改变世界(吹牛逼不花钱,随便吹)。
本文会讲 JS 引擎的编译流水线、渲染引擎的渲染流程,然后引入为什么需要 event loop。
代码块: JS中的代码块是指由<script>标签分割的代码段。JS是按照代码块来进行编译和执行的,代码块间相互独立(即就算代码块1出错,但不影响代码块2的加载和执行),但变量和方法共享。
那么现在有 2 个进程,process1 process2,由于是多进程的 js,所以他们对同一个 dom,同时进行操作,process1 删除了该 dom,而 process2 编辑了该 dom,同时下达 2 个矛盾的命令,浏览器究竟该如何执行呢?
首先贴个Javascript性能测试站点,测试并展示了数个 JavaScript 引擎的性能数据:arewefastyet
页面有效期访问分为前台JS校验和后台时间校验,前台校验能够解决业务上的效果实现,而后台校验主要用于防止系统漏洞,增加系统安全性,应用场景如下:
由于CommonJS和AMD都十分流行,但似乎缺少一个统一的规范。于是,UMD(通用模块规范)出现了,它可以同时支持这两种风格。
随着我们的网站越来越依赖 JavaScript, 我们有时会(无意)用一些不易追踪的方式来传输一些(耗时的)东西. 在这篇文章中, 我会介绍一些能让你的网站在移动设备上快速加载且可交互的方式. 摘要: 更少的代码 = 更少的解析/编译(时间) + 更少的传输(时间) + 更少的解压(时间) 网络 大多数开发者考虑 JavaScript 的时间消耗时, 都会首先考虑到 JavaScript 的下载和执行消耗. 脚本传输的字节越多, 花费的时间越长, 用户连接的就越慢. network 即使在网络发达的国家,
上一篇发出来后得到了很多回复,在此首先感谢大家的热情捧场!有的推荐第三方框架,比如 In.js、requrieJS、sea.js、lab.js等。这个开阔了眼界,以前只知道sea.js,省去了自己搜索的麻烦。也用了点时间简单看了一下,因为每一个都是大块头,都有自己的理念,如果只是简单使用的话,那么谁便找一个就可以了,但是我习惯把原理弄清楚。因为我觉得虽然不知道原理也可以使用,但是知道了原理后,可以用的更好。 主要看的是sea.js,目前简单的理解是:一个加载js的机制 + 模块化编程(CMD规范)的
Node.js已成为构建可伸缩Web应用程序的首选技术。由于它提供了许多重要的好处,因此在开发人员中获得了极大的欢迎。根据Stack Overflow的2020 开发人员调查显示,在一个热情的社区的支持下,node.js一直是最流行的Web框架, 拥有 51.9%的股份。
和富文本一致,日期控件也是我们经常可常见的控件之一,而且大多数的日期控件都是readonly属性,需要人为的手动去选择对应的时间,很显然,在手工测试中,这是一个很简单,很容易做到的操作,在自动化中,对日期的控件,比手工测试的操作虽然一直,但是比较繁琐。对日期的控件,我们任然使用js来控制,然后通过控制js来实现我们的目的。
在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。 然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。 以发展的眼光来看,功能的动态加载以及三端的融合将会是大趋势。那么如何克服WebView固有的问题呢?我们将从性能、内存消耗、体验、安全几个维度,来系统的分析客户端默认WebView的问题,以及对应的优化方案。 性能 对于WebView的性能,给人
本项目是淘系用户增长团队的一个大中台系统,单页应用,涵盖很多业务功能,运用了很多懒加载页面组件来提升性能,首屏时间 1s 左右,体验良好。然而大项目文件很多,导致构建和发布时间很长,内存占用较大。我的任务是尽可能优化与此相关的问题。
本文分享了腾讯防水墙团队关于机器对抗的动态化思路,希望能抛砖引玉,给现在正在做人机对抗的团队一些启发。
在[JS 事件循环之宏任务和微任务](../Performance/JS事件循环之宏任务和微任务.html)中讲到过,setInterval 是一个宏任务。
参考地址:《深入理解node.js异步编程:基础篇》 一、概述 目前开源社区最火热的技术当属 Node.js 莫属了,作为使用 Javascript 为主要开发语言的服务器端编程技术和平台,一开始就注
JavaScript是单线程的,又是异步的,而最新的HTML5中,通过Web Workers可以在JS中支持多线程开发。这是几个意思?异步还是单线程,这怎么理解?Web Workers又是什么原理?实际开发中,异步和多线程之间如何交互?答案就在下面。主要涉及的内容有: 为什么异步解决不了问题 Worker又是什么玩法 Cesium中的异步+多线程框架 为什么异步解决不了问题 简单说,JavaScript是单线程的,简单易用,但如果遇到时间较长的任务时,则容易出现卡死的现象,为了避免这种问题,我们对时间久的
目标:将“JS混淆加密”功能集成到鼠标右键菜单,一键点击完成JavaScript代码混淆加密。
H5 项目是企鹅辅导的核心项目,已迭代四年多,包括了课程详情页/老师详情页/报名页/支付页面等页面,构建产物用于企鹅辅导 APP/H5(微信/QQ/浏览器),迭代过程中了也累积了一些性能问题导致页面加载、渲染速度变慢,为了提升用户体验,近期启动了 “H5 性能优化” 项目,针对页面加载速度,渲染速度做了专项优化,下面是对本次优化的总结,包括以下几部分内容:
企鹅辅导 H5 页面在长期迭代过程中,逐渐累积了一些性能问题,导致页面加载、渲染速度变慢。为了提升用户体验,近期针对页面加载速度,渲染速度做了专项优化,本文是对此次优化的实践总结。分析过程比较细致,希望能给性能分析经验欠缺的同学一些帮助。 项目背景 H5 项目是企鹅辅导的核心项目,已迭代四年多,包括了课程详情页/老师详情页/报名页/支付页面等页面,构建产物用于企鹅辅导 APP/H5(微信/QQ/浏览器),迭代过程中了也累积了一些性能问题导致页面加载、渲染速度变慢,为了提升用户体验,近期启动了 “H5 性能优
JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。
随着技术的发展,有许多技术可应用于实时应用程序开发。在所有这些技术中,Node.js 以其突出的特性及其他诸多优势给人留下了深刻的印象。
笔者以前面试的时候经常遇到写一堆setTimeout,setImmediate来问哪个先执行。本文主要就是来讲这个问题的,但是不是简单的讲讲哪个先,哪个后。笼统的知道setImmediate比setTimeout(fn, 0)先执行是不够的,因为有些情况下setTimeout(fn, 0)是会比setImmediate先执行的。要彻底搞明白这个问题,我们需要系统的学习JS的异步机制和底层原理。本文就会从异步基本概念出发,一直讲到Event Loop的底层原理,让你彻底搞懂setTimeout,setImmediate,Promise, process.nextTick谁先谁后这一类问题。
在 Node.js 中,全局对象指的是可以在任何地方访问的对象。这些对象提供了许多有用的功能和属性,可以帮助我们在 Node.js 环境下进行开发。本文将详细介绍一些常见的 Node.js 全局对象及其使用。
我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。
这是我们部门前端同学cobish的学习笔记,笔者编辑了一下并分享给大家。 在使用 Grunt 之前,项目静态文件几乎没进行压缩合并便直接放到线上,部分文件手动复制粘贴到某压缩网站进行压缩。没压缩合并的
《生活大爆炸》中 让大家折腾不已的时光机问题 小编想说 谢耳朵这么折腾也就算了 没想到前端优化也是如此折腾不止 写在前面 作为开发,不仅仅是前端,优化总是你绕不开的事,我们的目标就是要产品变更得更快。优化的对象不仅仅指产品本身,还有我们日常的开发流程。要打造一个无痛的开发流程,并且能够相对轻松的对产品持续优化真的不轻松。没有银弹,任何项目都要花很多时间和精力。但任何值得改善的地方能够有所提升都让我们觉得努力没白费。有时候只想懒一点,从枯燥的重复中解放出来。 从作者加入团队到现在,过程中遇到了很多问题
根据我的经验,写一个模块或 CLI 工具前你所要做的第一件事就是设置一个开发环境。对这个步骤有人喜欢有人愁。但不管怎样,它可能总是花掉你很多时间,你得不停地调整你配置的方方面面。
链接|https://mp.weixin.qq.com/s/tbK63erZgMy5-RbhbAWgrw
在做web自动化时,有些情况playwright的api无法完成以及无法应对,需要通过或者借助第三方手段比如js来完成实现,比如:去改变某些元素对象的属性或者进行一些特殊的操作,本文讲解playwright怎样来调用JavaScript完成特殊操作。
其实我一直很困惑关于js 中的callback,困惑的原因是,学习中这块看的资料少,但是平时又经常见,偶尔复制一下前人代码,功能实现了也就不再去追其原由。
大家注意:因为微信最近又改了推送机制,经常有小伙伴说错过了之前被删的文章,或者一些限时福利,错过了就是错过了。所以建议大家加个星标,就能第一时间收到推送。
启动程序之后,打开google浏览器对应页面,按F12或者Ctrl+Shift+I进入 开发者工具页面
作者:addy(许斌),前端开发工程师,文艺青年一枚,写得了文章,编得了代码。 作为开发,不仅仅是前端,优化总是你绕不开的事,我们的目标就是要产品变得更快。优化的对象不仅仅指产品本身,还有我们日常的开发流程。从加入团队到现在,大概有一半左右的时间花在了优化上,期间遇到了很多问题,回过头看,优化这件事情并不是那么简单,也是些很琐碎的事情,要打造一个无痛的开发流程,并且能够相对轻松的对产品持续优化真的不轻松。没有银弹,任何项目都要花很多时间和精力。但任何值得改善的地方能够有所提升都让我们觉得努力没白费。有时候只
前端优化是一个大的课题,需要花好多时间才能理解,之前对前端优化陆陆续续有一些了解。所以这次从渲染优化,打包优化,代码优化做了一个系统的总结,并且引申出了几个需要关注的问题,文章可能有点长,大家一定要看到最后。最后写作不易,希望觉得还可以的话,帮忙点赞一波,提前感谢了。当然如果有写不好的地方,也请指出来,我会积极改进,共同成长。
在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScript完成特殊操作。
js本身的问题: 不具有模块化的语法规则,在语言层面没有命名空间。 JavaScript 编程过程中很多时候,我们都在修改变量,在一个复杂的项目开发过程中,如何管理函数和变量作用域,显得尤为重要。
(2) JS的Event Loop是JS的执行机制。深入了解JS的执行,就等于深入了解JS里的event loop
因为要执行一大串的脚本,黏贴到shell窗口里,就要很长时间,所以问题来了,直接复制一大串代码执行的方法太慢了,只能看看能不能用命令执行文件,将代码弄到一个js文件里,然后用命令执行
领取专属 10元无门槛券
手把手带您无忧上云