首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习HTML5 技巧

不过,现在HTML5修改了这个用法,元素被重新定义了,或者更恰当地说,它现在用来代表小字或其他边注(如,网站底部的版权声明)。 4...., nav, menu, hgroup { display: block; } 就算如此,IE还是不知道这些元素究竟是什么,因而会无视这些格式,还需要用到下面的代码来解决这个问题: document.createElement...群组标题(hgroup) 假设一个网站有名称、副标题分别用、标签来标记,在HTML4中还没有一种能够将两者之间的关系用很好的语义关系来描述的方法,此外,当使用h2在页面中显示其它标题时,...这个问题问得非常好,这里给大家介绍两种方式,第一个选择是使用Modernizr来检测,或者你也可以创建并剖析这些元素来看看浏览器都有什么能力。...例如,如果我在一些博客中搜索"Open your Mind" ,我可以使用在标签里使用JavaScript 来包裹每一次动作。

62040

是什么让我们爱上Javascript

这个声明并没有引起太多的注意,在当时Java Applet是一个热门的技术,当时对于为什么Netscape要在浏览器中内嵌两种语言也不是十分清楚,难道有什么事情LiveScript能做而Java做不了的么...(David Flanagan是个例外)让事情更糟糕的是,有些人(也许是大多数人)根据就没从书中学习过JavaScript,他们只是从一个网站现有的代码中拷贝,修改,然后粘贴到自己的网站上让它工作,到最后都不知道为何这些代码能够正常运行...除了一些根深蒂固的区别,想要修改他们必须大量的修改源码,这个小组修复大多数的不同,于是IE和Mozilla/Firefox下的JavaScript变得更可控了。其他的开发者也更加的有迹可循。...Adobe也在不断努力使他们的很多程序可以使用JavaScript来控制和扩展。Apple将JavaScript嵌入了它的Sherlock应用中。...停止担心,爱上DOM 我已经阐明了为什么JavaScript有这个名声的众多原因,其中有好的也有坏的,在这众多的原因中,我只想重复一条,他是如此重要,能够解释为什么很多有经验的程序员经给被自己的经验所蒙蔽

39230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么进步太慢,因为你没有一个好习惯

    我的回答是,你做不好这些只是因为你没有养成一个良好的编程习惯 我为什么写这么多开源框架,还长期保持维护?...写业务时无法注意到的细节 在写业务代码时,即使项目时间充裕,你也会忽略掉很多细节,而这些细节正是影响你进步速度的关键,但你自己却很难察觉,在不知不觉间就对你的进阶之路造成了很大的影响 所以你的进步速度非常之慢...因为你上面的编码方式,所养成的不好的编程习惯,会让你本能的不注重代码的耦合性、灵活性、可扩展性 所以即使你天天敲代码,你的进步也如此之慢,因为你平时就缺乏架构设计、代码设计的锻炼,日积月累,你也只是搬砖的速度比之前更快一点而已...写开源框架时给你带来的改变 这个时候如果有一个好的 leader 能每天 review 你的代码,还时常提醒你这些问题,只要你慢慢改成,并养成习惯,那你的进阶之路也会十分顺畅 但如此好的 leader...去解决这些问题,而不得不去使用这些设计模式,很多情况下,代码已经写完了,才知道,原来我用的是 xx 设计模式 在这种不断优化代码,养成的良好编程习惯下,我写代码时,使用设计模式已经变成了潜意识的行为,根本说不出为什么要用这个设计模式

    44410

    简述ajax的实现原理_空气净化器的原理

    而这也让微软感到无比的尴尬,因为早在97年,微软便已经发明了ajax中的关键技术,并且在99年IE5推出之时,它便开始支持XmlHttpRequest对象,并且微软之前已经开始在它的一些产品中应用ajax...那么微软为什么对自己在ajax方面的落后如此紧张呢?现在就让我们来分析一下ajax技术后面隐藏的深刻意义。...这就是为什么微软对ajax所带来的冲击有着如此的恐惧心理,并且在它前不久所进行的调查之中,将google看做他们未来十年内的主要竞争对手的主要原因之一。...要清楚这个过程和原理,我们必须对 XMLHttpRequest有所了解。 XMLHttpRequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。...但是它的这个特点可以给我们带来很大的方便,比如说我们的页面有一个列表,而列表的数据是不断变化的,那么我们可以采用magicajax来处理,操作很简单,添加magicajax之后,将要更新的列表控件放在magicajax

    34120

    负责任地编写Javascript(二)

    然后事情会恶化到极点,CTO 周末从度假小屋回来,质问为什么网站加载速度如此之慢——如果它真的加载过。 重构时每个人都很开心,重构后没有人快乐了。欢迎来到你的第一个 “JavaScript 宿醉”。...这并不是你的错 当你与严重的“宿醉”作斗争时,“我告诉过你”这句话将是你应得的,它代表了激怒和指责——假设你还可以在如此糟糕的状态下战斗。...Tree shaking 在构建过程中不太可能没有作用,如果真的没有,那就让它发挥作用。...当我在现有项目中寻找时,我会在整个代码库中搜索用户交互点,例如单击和键盘事件,以及类似的候选项。任何需要用户交互才能运行的代码都可能是动态加载的好的选择。...差异服务通过将 ES6 源码生成两个不同版本的代码包,可以帮助我们解决这个问题: •代码包1,它包含在较传统浏览器上运行站点所需的所有转换和填充。你可能已经在提供这个包了。

    69120

    为什么使用React作为云平台的前端框架(PPT)

    七、社区强大 一、简单易学,上手快 严格意义上来说,React并不是一个框架,只是一个类库,它专注于MVC中的V,但是正是由于这种专注,简单易学,上手快,学习React,你只需了解如何编写JSX风格的...所以,只要你以前有JavaScript的经验,学习React是相当简单的。 二、JSX使编程更简单 举个例子,我们有一个人员列表(张三、李四、王五、赵六),需求是:对每个人员,打出你好+人员姓名。...之前讲“简单易学、上手快”的时候提过,其实React并不是一个框架,只是一个类库,它专注于MVC中的V。...我们可以看到借助于NPM方便的包管理平台,React拥有非常强大、丰富的第三方类库,面对如此庞大的类库、如此多的选择,我们是幸福的,但同时如何选择也是个难题。...答:现在普元的前端组件大部分使用的是第三方类库,比如React Bootstrap,今后会自己做封装,重点是一些复杂的组件,比如图表、列表等。 Q2、群友:两个测试过程中版本是怎么选择的?

    2.4K40

    关于战略问题的通信之六

    只过了几年,80386SX[5]出来了,兼容机的价格下降到1500美元,你只要买一台,就能运行Excel。 由于内存的价格直线下降,CPU的速度每年都在翻番,所以作为一个程序员,你就面临选择。...不管是哪一种选择,6个月后你的程序都会运行得更快。实际情况是没有程序员真的喜欢用汇编语言编程。 所以,我们都不怎么关心软件的效率或优化问题。...不过,你还有另外一个选择,就是使用p-code虚拟机[6]或者Java虚拟机模型,你在底层系统之上建立一个小小的沙箱(sandbox),再将软件的运行建立在沙箱之上。...完善的互动性和用户界面标准 IBM 360大型机(mainframe)使用一种叫做CICS[8]的用户界面,你今天在飞机场还能看到这个系统,你只要在办理登机手续的柜台上弯下身子就能看到。...主机发送一个表单给"客户端"(一台IBM 3270智能显示终端)。这个"客户端"是智能的,它知道如何将表单呈现给你,允许你将数据输入表单,在这个过程中,根本不与主机通信。

    78570

    使用 WPADPAC 和 JScript在win11中进行远程代码执行

    初步调查显示,负责执行这些配置文件的 JS 引擎是 jscript.dll - 也支持 IE7 和 IE8 的旧版 JS 引擎(如果使用适当的脚本属性,在 IE7/8 兼容模式下仍然可以在 IE11 中访问...其他操作系统和应用程序也是如此。例如,Google Chrome 也有一个 WPAD 实现,但在 Chrome 的情况下,评估 PAC 文件中的 JavaScript 代码发生在沙箱内。...攻击场景:通过恶意 wpad.tld 在互联网上远程 WPAD 的一个特别奇怪之处在于它递归地遍历本地机器名称以查找要查询的域。...Kiwicon的一次演讲表明,世界其他地区仍然非常容易受到这个安全漏洞的攻击,在新西兰注册的一个示例域用于测试目的,以每秒几个的速度接收来自全国各地的代理请求。...一个反复出现的问题是堆栈上的局部变量默认不会添加到根对象列表中,这意味着程序员需要记住将它们添加到垃圾收集器的根列表中,特别是如果这些变量引用的对象可以是在函数的生命周期内被删除。

    5.3K470

    15·灵魂前端工程师养成-JavaScript历史

    学习JS的基本要求 JavaScript的历史 JavaScript爆发 -曾老湿, 江湖人称曾老大。 ---- -多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。...的历史 李爵士发明了HTML 赖先生发明了CSS 布兰登发明了JavaScript  ---- JS的诞生 临危受命 1.公司要求给浏览器添加一个脚本功能 2.公司要求这个脚本必须蹭Java...Java和JavaScript 4.后来,JS赢了,(在浏览器方面) ---- 浏览器大战 当JS出来的那一刻,微软跟进,立马推出一个新的产品: 1996年8月IE3发布,支持JScript(微软实现的...中,IE6会让你当场司机,突然去世... ---- 让IE死亡的浏览器 Chrome 横空出世 因为微软的懈怠,解散了IE6的开发团队,后来Firefox的出现,让微软重新组织了一个团队,但不是一个团队...---- 总结 1.JS是历史的选择 一开始浏览器支持很多东西:Java、Flash、VBScript,只有JS活到最后 2.JS低开高走 一开始JS就是一个玩具语言,但是JS每次都走对了风口

    32810

    消除IE stop running this script弹出框

    你可以点击"YES"或"NO",点击"NO",IE会继续执行脚本,执行结果跟没有弹出这个框的结果是一样的,点击"YES",IE停止执行脚本,这时候看到状态肯定是不正常的,如果用户都理解原理,并且每次都选择...这个设计相当有意思,意味着就算你的代码在1秒钟内执行完成了,但是如果这1秒钟之类执行过的语句行数超过了这个预设的固定值,IE还是会弹出这个stoprunning script的框,这显然会让我们很困惑....那么接下来有两个问题: 1)代码执行行数的限制是多; 代码执行行数的限制是多少, 这个值是在注册表里面可修改的,默认是500万行, 当然你可以修改成更大,这样你也能阻止IE跳出stop running...事件机制为什么能解决这个问题,是因为IE的代码计数器对事件处理函数里面的代码重新计数,已经跟当前控制流的代码计数器分开了....修改注册表, 至于为什么可以通过修改注册表解决这个问题,请看下文的解释 要修改IE4 - IE8的time-out的值,按如下方式操作: 1)运行Regedit32.exe, 找到下面这一项 HKEY_CURRENT_USER

    1.1K10

    代码优化的 5 大原则,第 1 条相信你一开始就没想到!

    我花了两天时间,绞尽脑汁地进行各种测试,审查代码逻辑,但完全没发现到底是什么地方让这个程序变得如此之慢。 就在第三天,在我穷尽了所有的办法,最后一点理智也快要消失的时候,我终于发现了问题所在。...在其中的一个读取页面上,被塞了一个等待语句,程序到这里就停上 20 秒。 这大约是原来调试这段代码的程序员在排查的过程中插入的等待命令,结果在将代码合并进生产环境的时候忘记把这行东西去掉了。...不要进行优化 代码优化的第一条原则就是,“不要”优化它。 这个程序是不是已经足够好了?你要去理解这个程序将会被如何使用,知道它是在怎样的环境下运行的,明白如果让它运行的更快到底有没有好处。...没错,代码优化所耗费的经历和成本,只有在这样的情况下是有意义的: 这个软件很重要 它运行的确实很慢 在保证代码健壮、正确、清楚的情况下,它确实还有改进的余地 一个程序,就算它运行得再快,如果无法得到正确的结果...请记住:在优化工作中,做出选择这件事占了90%的权重。值得花时间来决定你要做什么,以及怎样才能做的对。当然,这也正是编程的黑科技之处! 5.

    41110

    代码优化的 5 大原则,第 1 条相信你一开始就没想到!

    我花了两天时间,绞尽脑汁地进行各种测试,审查代码逻辑,但完全没发现到底是什么地方让这个程序变得如此之慢。 就在第三天,在我穷尽了所有的办法,最后一点理智也快要消失的时候,我终于发现了问题所在。...在其中的一个读取页面上,被塞了一个等待语句,程序到这里就停上 20 秒。 ? 这大约是原来调试这段代码的程序员在排查的过程中插入的等待命令,结果在将代码合并进生产环境的时候忘记把这行东西去掉了。...不要进行优化 代码优化的第一条原则就是,“不要”优化它。 这个程序是不是已经足够好了?你要去理解这个程序将会被如何使用,知道它是在怎样的环境下运行的,明白如果让它运行的更快到底有没有好处。...没错,代码优化所耗费的经历和成本,只有在这样的情况下是有意义的: 这个软件很重要 它运行的确实很慢 在保证代码健壮、正确、清楚的情况下,它确实还有改进的余地 一个程序,就算它运行得再快,如果无法得到正确的结果...请记住:在优化工作中,做出选择这件事占了90%的权重。值得花时间来决定你要做什么,以及怎样才能做的对。当然,这也正是编程的黑科技之处! 5.

    88520

    轻量迅捷时代,Vite 与Webpack 谁赢谁输

    而这也会导致一个不可避免的情况,使用Webpack启动应用程序的服务器,会花费比较长的时间——一些大型应用程序可能需要10分钟以上。 此时你心里可能已经在抓狂了,为什么会这么费时间?...基于Webpack包的工作流 当我们保存文件时,整个JavaScript包将由Webpack重建,即使启用了HMR,我们进行修改可能也需要10秒钟才能在浏览器呈现。...在比较复杂的环境下,Webpack的反馈却如此之慢,会为开发人员带来极大不便。 说完了Webpack我们再为大家介绍一下Vite。...由于这个原因,Vite内置了一个build的配置的命令,该命令使用Rollup捆绑应用程序;我们可以根据自己的具体需求对Rollup进行自由配置。...React 的起始页与Create React App的默认模板非常相似,只是稍作修改: 此外Vite preview用于在本地对应用进行预览,还支持许多官方模板,包括vanilla JavaScript

    91820

    详解Windows Shim的攻防利用

    一个在Vista运行得好好的程序很可能在win7下无法运行。因为一个极小的API改动都可能让该程序崩溃。...这就造成了很多旧软件无法在新windows下运行。 这种情况下用户会责备谁呢?当然是微软,因为这个程序在win7下运行得好好的,为什么win10下就跑不起来了呢?...这个过程相当于windows自己做了一个IAThooking。 ? 如图所示,一个应用程序在调用Windows API之前,修改了IAT从而被重定向到Shim。...选择”RedirectEXE”并且设置命令行参数, 这里我想设置重定向到IE,并打开腾迅的主页。...注意到该程序的最近修改时间(Last modified time)为16年8月11日09点35分48秒,就是我点击恶意javascript的时间,说明这个exe文件是我点击javascript的时候新创建的

    2.7K70

    JavaScript高级程序设计-性能整理(二)

    这个队列对每个 MutationObserver 实例都是唯一的,是所有 DOM变化事件的有序列表。...DOM 操作在 JavaScript 代码中是代价比较高的,NodeList 对象尤其需要注意。NodeList 对象是“实时更新”的,这意味着每次访问它都 会执行一次新的查询。...自然地,JavaScript 与 CSS 类的交互就增多了,包括动态修改类名,以及根据给定的一个或一组类名查询元素,等等。...只要在使用事件处理程序时多注意一些方法,就可以改善页面性能。 17.5.1 事件委托 只要可行,就应该考虑只给 document 添加一个事件处理程序,通过它处理页面中所有某种类型的事件。...另一个可能导致内存中残留引用的问题是页面卸载。同样,IE8 及更早版本在这种情况下有很多问题,不过好像所有浏览器都会受这个问题影响。如果在页面卸载后事件处理程序没有被清理,则它们仍然会残留在内存中。

    81930

    最全面、最详细web前端面试题及答案总结

    Canvas是HTML5的一个元素,它使用JavaScript在网页上绘制图形。Canvas是一个矩形区域。它的每一个像素都可以由HTML5语言来控制。...eg: 比如有一个列表和一个详情,那么用户就会经常执行打开详情=>返回列表=>打开详情…这样的话列表和详情都是一个频率很高的页面,那么就可以对列表组件使用进行缓存,这样用户每次返回列表的时候,都能从缓存中快速渲染...它和Standards模式有什么区别 从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。...答:在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。如果两个对象互相引用,而不再 被第3者所引用,那么这两个互相引用的对象也会被回收。...在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。

    8.2K20

    前端学习资料整理

    关于文档流的解析方向,是因为现在的 CSS,一个元素只要确定了这个元素在文档流之前出现过的所有元素,就能确定他的匹配情况。...为什么要使用闭包?有什么优缺点? js垃圾回收机制 在Javascript中,如果一个对象不再被引用,那么这个对象就会被GC回收。...当应用足够复杂时才能体会到它的好处,虽然在一般应用场景下你可能不会意识到它的存在,也不会影响你开始使用 React,你只要先知道有这么个概念。...当我们需要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性, 如果没有的话, 就会查找他的Prototype对象是否有这个属性,如此递推下去,一直检索到 Object 内建对象。...采用这种方法,页面就不会被脚本搞得一团糟,易于阅读,在每个页面中,总可以在同一个位置找到脚本。 移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?

    3.5K20

    JavaScript的垃圾回收

    ---- theme: fancy 简介 本文来自JavaScript高级程序设计(第四版)——前端红宝书 今天说一下js中的垃圾回收,垃圾回收就是确定哪个变量不会再使用,然后释放它占用的内存。...这个过程是周期性的,即垃圾回收程序每隔一定时间(或者说在代码执行过程中某个预定的收集时间)就会自动运行。...当变量进入上下文,比如在函数 内部声明一个变量时,这个变量会被加上存在于上下文中的标记。而在上下文中的变量,逻辑上讲,永远不应该释放它们的内存,因为只要上下文中的代码在运行,就有可能用到它们。...到了 2008 年,IE、Firefox、Opera、Chrome 和 Safari 都在自己的 JavaScript 实现中采用标记清理(或 其变体),只是在运行垃圾回收的频率上有所差异。...,这样就会导致DOM 元素的内存永远不会被回收, 即使它已经被从页面上删除了也是如此。

    44920

    【转】不同内核浏览器的差异以及浏览器渲染简介

    顾名思义,JavaScript引擎就是用来渲染JavaScript的。 为什么要单独拿出来说呢?因为它涉及到跑分。...也不是这么说,因为现在JavaScript在页面中的比重会越来越大,越来越多的动态页面开始大量借助JavaScript,比如现在主流的SNS、邮箱、网页游戏,所以JavaScript的渲染速度也是一个很重要的指标...浏览器发现了一个包含一行Javascript代码的标签,赶快运行它;    8....Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个(style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码;    9....我们知道有一个ID为nav的元素,并且它只有几个Li子元素,所以这个CSS选择符应该相当高效。 事实上,CSS选择符是从右到左进行匹配的。

    2.2K10

    为什么说Web开发和Vue.js是如此的有趣?

    我获得了一个职位,利用了我在SharePoint的经验。我在SharePoint的经验并不特别:用GUI、工作流等设计页面这个不是我理想中的工作,而是为了生活不得不做的工作。...幸运的是,使用数据库的经验使我能够以规范化的方式设计列表,但似乎缺乏用户界面方面的功能。在SharePoint设计器中,即使修改了底层ASP,某些效果也很难实现。...我们的第一次迭代的一个特定的应用**xmlhttprequests,**通过JavaScript函数构建HTML。这种方法的连接如此之多以至于我们的函数和字符串变得越来越难维护。...不过,我们需要添加在项目列表中折叠/展开某些项的能力。我的这个问题的第一种方法是给我的对象设置一个“visible”的属性,当属性的值发生了变化那么就重新编译模版。...另外,没有太关注在IE9 +使用vue.js,而IE不支持模板。 响应性 事实上,我可以对我们的模型进行更改,它会自动更新页面上的内容,这也是为什么让我觉得angular.js好用的原因。

    2.1K10
    领券