新的Blink 引擎对web前端模板引擎开发者有哪些意义和影响

浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。前端开发面试知识小结 - 推酷
前端开发面试知识小结
1. 对Web标准的理解
Web标准是一系列标准的集合:结构标准(XHTML/HTML)、表现标准(CSS)和行为标准(ECMAScript/DOM/BOM)。还有这些代码的书写标准。
要实现的Web标准是: 结构化文档;内容、表现和行为三者间的分离。
2. 浏览器内核差异
IE浏览器的内核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera内核原为Presto,现为Blink。
1. HTML的&!DOCTYPE&,所谓的“严格模式”和“混杂模式”
(1)&!DOCTYPE& 声明位于文档中的最前面,处于 &html& 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。
(2)严格模式的排版和JS运作模式是以该浏览器支持的最高标准运行。
(3)在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
(4)DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
2. &link& 和@import 的区别
(1)&link&属于XHTML标签,而@import是CSS提供的;
(2)页面被加载的时,&link&会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3)import只在IE5以上才能识别,而&link&是XHTML标签,无兼容问题;
(4)&link&方式的样式的权重 高于@import的权重。
3.块级元素、行内元素、空(void)元素有哪些?
(1)块级元素。默认display属性是block。div ul ol li dl dt dd h1 h2 h3 h4…p。
(2)行内元素。默认display属性是inline。a b span img input select strong。
(3)空元素。功能性元素,标签可以不闭合。&br& &hr& &img& &input& &link& &meta&
4.常见的HTML浏览器兼容性问题
(1)获取标签的自定义属性。
IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。
解决方法:统一通过getAttribute()获取自定义属性。
(2)even对象。
IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,event对象有pageX,pageY属性,但是没有x,y属性。
解决方法:var x = (event.x ? event.x : event.pageX)
5.HTML语义化
(1)用正确的标签做正确的事情!
(2)html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;
(3)在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的。
(4)搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。
(5)使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
6.iframe的缺点
(1)iframe会阻塞主页面的Onload事件;
(2)iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。
解决方法:使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以可以绕开以上两个问题。
1.HTML5的离线储存
localStorage
长期存储数据,浏览器关闭后数据不丢失;
sessionStorage
数据在浏览器关闭后自动删除。
2.cookies,sessionStorage 和 localStorage 的区别
(1)cookie在浏览器和服务器间来回传递, sessionStorage和localStorage不会。
(2)sessionStorage和localStorage的存储空间更大。
(3)sessionStorage和localStorage有更多丰富易用的接口。
(4)sessionStorage和localStorage各自独立的存储空间。
3.如何实现浏览器内多个标签页之间的通信? (阿里)
调用localstorge、cookies等本地存储方式
4.webSocket如何兼容低浏览器?(阿里)
Adobe Flash Socket 、 ActiveX HTMLFile (IE) 、 基于 multipart 编码发送 XHR 、 基于长轮询的 XHR
Table布局,Div+CSS布局,响应式设计。
2. 盒子模型
(1)有两种, IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和
(2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border).
3.选择器优先级及使用
1.id选择器( # myid)
2.类选择器(.myclassname)
3.标签选择器(div, h1, p)
4.相邻选择器(h1 + p)
5.子选择器(div & p)(选择父元素为 &div& 元素的所有 &p& 元素。)
6.后代选择器(li a)
7.通配符选择器( * )
8.属性选择器(a[rel = &external&])
9.伪类选择器(a: hover, li: nth - child)
1.!important &
id & class & tag
2.important 比 内联优先级高
4. CSS3新特性
CSS3实现圆角(border-radius:8px),阴影(box-shadow:10px),对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)、
缩放scale(0.85,0.90),定位translate(0px,-30px),倾斜skew(-9deg,0deg)
增加了更多的CSS选择器
多背景 rgba
5.CSS定义的权重
标签的权重为1,class的权重为10,id的权重为100。
/*权重为100+1=101*/
/*权重为10+1=11*/
.class1 div{
/*权重为10+10+1=21*/
.class1 .class2 div{
6.如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)
多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms
7.去除display:inline-block显示间隙?(携程)
移除空格、使用margin负值、使用font-size:0、letter-spacing、word-spacing
8.CSS的浏览器兼容性
Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,可通过加入 CSS 属性 -webkit-text-size-adjust: 解决。
浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。
JavaScript:
1.Node.js的适用场景?
高并发、聊天、实时消息推送
2Javascript如何实现继承?
通过原型和构造器
3.This对象的理解
this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。
但是有一个总原则,那就是this指的是调用函数的那个对象。
this一般情况下:是全局对象Global。 作为方法调用,那么this就是指这个对象
4.如何判断一个对象是否属于某个类?
使用instanceof (待完善)
if(a instanceof Person){
alert('yes');
5.new操作符具体干了什么呢?
1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到 this 引用的对象中。
3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。
obj.__proto__ = Base.
Base.call(obj);
6.Javascript中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
hasOwnProperty
7.JSON 的了解?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小
{'age':'12', 'name':'back'}
8.如何解决跨域问题?
jsonp、 iframe、window.name、window.postMessage、服务器上设置代理页面
9.模块化怎么做?
立即执行函数,不暴露私有成员
var module1 = (function(){
var _count = 0;
var m1 = function(){
var m2 = function(){
10.documen.write和 innerHTML的区别
document.write只能重绘整个页面
innerHTML可以重绘页面的一部分
11.call, apply方法区别
call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.
应用场景:当参数明确时可用call, 当参数不明确时可用apply给合arguments
12.针对 jQuery 的优化方法?
(1)基于Class的选择性的性能相对于Id选择器开销很大,因为需遍历所有DOM元素。
(2)频繁操作的DOM,先缓存起来再操作。用Jquery的链式调用更好。
比如:var str=$(&a&).attr(&href&);
(3)for (var i = i & arr. i++) {}
for 循环每一次循环都查找了数组 (arr) 的.length 属性,在开始循环的时候设置一个变量来存储这个数字,可以让循环跑得更快:
for (var i = size, length = arr. i & i++) {}
13.那些操作会造成内存泄漏?
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
(1)垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
(2)setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
(3)闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
14.如何判断当前脚本运行在浏览器还是node环境中?(阿里)
通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致参加第二届前端开发者年度大会是个什么样的体验?
比如听到什么新的技术,遇到什么好玩的事情,最大的收获是什么,都可以说说
按时间排序
想听我的真实感触么?都尼玛广告!!!都尼玛混脸熟的!!!都在念文档!!!大多数来参加的都是准备或正在找工作的。哈哈哈,我知道很多人要不爽了,不过这确实是我多次参加这种大型活动的感触,不过没有参加过你说的这次,不认同请折叠。
出现最多的关键词是react,主要做pc端,公司对pc端要求兼容IE7,表示对react累感不爱,移动端在用react,考虑要不要转去做移动端好了
Get in and get out of the conference with one sentence: 欢迎来到全广州可能是最大的同性交友平台……
代表公司去参加今年的 第二届前端开发者年度大会,散会的时候,Team 技术老大问我,今天感觉怎么样,有什么收获,当时就零零碎碎的回答了一些,不算完美;趁着还记得点什么,在这里做个自我回顾总结,谨代表个人见解,有不当之处,或若涉及图片隐私或者其它问题,烦请指正.==================================================记得小时候写作文的时候,老师都会强调三要素:时间,地点,人物;那下面就从这三要素来作为时间线回顾:时间:2016 - 03 - 19 地点:广州嘉裕太阳城广场三楼金逸国际影城四号厅演讲嘉宾:绝对的重量级人物,看图说话感受下大会的现场:由于是在电影院举行这次前端大会,整个过程下来大屏幕的观看效果还是挺赞的,人数目测也在400+,除了广州本地,也有不少是从其他城市过来的,可见这次的会议还是挺高大上的由于是在电影院举行这次前端大会,整个过程下来大屏幕的观看效果还是挺赞的,人数目测也在400+,除了广州本地,也有不少是从其他城市过来的,可见这次的会议还是挺高大上的【进入正文】==================================================09:00
签到这里没啥好讲的,正常的会议流程,二维码签到,发送纪念T恤,进入会场==================================================09:45
使用 React、Redux 和 Node.js 构建通用应用Facebook 前端工程师 Stepan第一个主题是由 Facebook 前端工程师 Stepan 带来有关react的分享:从使用 rails 生成的项目目录结构为切入点,讲到大约在08以前的时候,JavaScript在人们的心中是只能做一些动画的效果,整个JavaScript 脚本放在 Rails 项目目录下面的一个 assets/javascripts 中,是不太受关注;而在09年左右出现了 BackboneJS,以及后来的AngularJS等前端框架,以及现在很热门的 ReactJS,VueJS,EmberJS等等,大概的讲述了这些年来 JavaScript的一个发展历程;接下来,抛出了一个问题:前端可以不依赖 rails 吗,后端为什么不能也用JavaScript来写?之后顺势推出了 ReactJS,主推前后端都使用 JavaScript 来实现,前端主要使用react,redux,后端使用 nodejs 去构建整个应用程序; 使用reactRouter做前端路由,使用 express 作为中间键等等,由于本人还没有使用react和nodejs去写过项目,这里就不好描述更多了,以免误人子弟 :(前后端都使用通一套语言的好处:代码共享使用nodejs,数据处理放在服务器,前端只要渲染,性能可以得到很高的优化SEO然后就是一些相关问题的代码演示:how about create store?initial data? how about fetching data?关键词: rails、react 、express、react-dom/server、reactRouter==================================================10:50
微信Web APP开发最佳实践微信团队UI工程师 江剑锋(jf)第二个主题是由微信团队UI工程师 jf 带来的有关微信 Web APP 开发的最佳实践;可谓是干货满满,把在微信开发过程中遇到的坑一一做了总结,以及介绍微信团队出品的一个 UI库:WeUIjf 首先是展示了一些微信的数据:微信 Android 客户端机型分布微信 Android 客户端系统版本分布微信用户网络分布重点来了,在大概的了解微信的一个现状后,jf 开始分享他们在微信开发的踩坑过程:脑补一下,当我们在微信打开一个网页后,默认是在微信里打开了一个浏览器,这个浏览器是微信基于 webkit 研发的一个名为 x5 内核浏览器,做过微信开发的人都清楚,在微信浏览器里总会遇到一些你意向不到的 BUG,以及调试困难的情况,下面看看微信团队总结的一些常见的坑常见的坑: 动画卡顿不支持伪元素动画只支持部分的 flex 布局视频默认是会有控制条的(去不掉,据说是为了防止恶意的视频播放问题)autoplay无效待补充...缓存问题:可能有时候做微信开发,你会碰到缓存失效的问题:解决办法:打开微信,点击“我”——& 设置 ——& 通用 ——&
清理微信存储空间 同时设置 localStorage 和 cookie黑科技://triggerWebViewCacheCleanup调试问题:推荐使用微信 Web 开发者工具X5升级:据 jf 介绍,目前微信 x5 浏览器正在升级,由以前基于webkit改为了基于Blink,填掉了许多在 x5 出现的坑,目前已经有30%的用户微信浏览器默认是已经升级了的,据说也是某种黑魔法,会自动升级,jf 透露,预计在4月底会全部更新完成【下午场】==================================================13:10 React TipsFacebook 前端工程师 黄士旗(ShihChi Huang)下午场的第一个主题是Facebook前端工程师黄士旗带来的主题React Tips,黄士旗是台湾人,普通话讲的非常的有power;主要是分享使用 react 开发一个 TODO 示例程序进行讲解相关的知识点:1. Container Component 的概念:解决的问题:Manage data/stateUI logicReusableNeeded tests2. Flux ReduceStore做资料(数据处理) 负责render (渲染)3. Functional style推荐使用 reduceStore, StateLess Component提到一个 HOC 的概念 ,没理解,后续在消化更新...这个主题讲的非常的棒,可是一时不知道该写些什么...==================================================14:20
下一代Web技术运用腾讯云平台产品中心总监 陈子舜(PuterJam)主要讲解与前端性能优化相关的技术点,从两个常见的前端面试题引申话题:问:如何做前端优化:答:Yahoo xxx原则 js 文件请求合并css 雪碧图拆分域名压缩...问:页面白屏会是什么原因:答:网络问题兼容问题终端问题作为面试者, 我们可能常常会想到以上一些关于前端性能优化的点,可是,做为腾讯云的技术总监,显然不会给我们分享这么简单的知识点:下面看看大牛们是从哪些方面考虑性能优化的,直接上图:==================================================16:30 下前端能力的培养计算机之子,阿里高级技术专家 程劭非(winter)winter带来的主题没有涉及太多的技术细节,而是非常系统,站在某一个高度上分享他自己的学习经验;强调前端不在于难学,而在于不知道怎么学;在他看来,如果前端分成100等分,前端技术知识点只占据20%,而能力则占据80%,这里的能力主要包括编程能力,架构能力,工程能力(管理)“好前端才分对错,成年人只分利弊” -- winter
上面这句话表面看不出什么意思,可仔细想想,其实他描述的是一种想象:一个好的优秀的前端是会区分对和错的,应该是能看到事情的本质的一面,而不是仅仅只区分利与弊,能用就好的一个心态;更具体的讲,winter 推荐我们可以从以下几个方面去学习培养前端能力:寻找线索 附录源代码反射(在浏览器运行查看效果,找到知识点的脉络)建立联系 美感完备性(如果有insertAfter方法,那我们应该想到会有insertBefore方法)操作同一组数据(进行分类)归类按照关联关系建立起连接,对偶性,对称性例如:insertBefore对应insertAfter,bind对应unbind追本溯源当遇到问题有不同的见解时,我们应该具有追本溯源的心态,去google,看wiki,找到问题的关键本质,要有考据的过程,比如说闭包:大部分可能会说: 闭包就是能够读取其他函数内部变量的函数那如果我们去追本溯源,在深入一点去研究:简单的说: 闭包是什么深入一点:闭包有什么作用在深入一点:常见的用法在在深入一点:会什么会有闭包这个东西在在在深入一点:......能力培养习题很重要 习题很重要 习题很重要能力是需要训练的主动性习惯养成系统训练==================================================17:35 HTTP/2 时代的Web性能国际知名Web设计师/前端工程师 Holger Bartel 最后一个主题是由Holger带来的HTTP/2时代的web性能,由下面的一张图可以看出人们正在排队等待的一个过程,由此引申出当我们去访问一个网页时,如果需要等待一段时间才能得到反馈的这个过程等待,是指我们需要一个特定的时间和特定的动作去执行,然而当我们需要做一件事情时,期望的应该是立即去执行,而不是需要等待一段时间性能,主要是关乎用户的一个期望,如果是2s内打开一个网页,用户是不会抱怨的,5s内如果能打开,那么用户也还是可以接受的,但是如果是8s还不能打开,用户是会失望的,他们会认为这个网站已经挂掉了;这个大概就是前端性能优化时我们经常会提到的一个2、5、8概念。接着简单说了目前一些常见的基础优化策略:inline imagecss sprite.....讲解页面的渲染流程, 强调现有的优化主要是:阻塞资源,请求开销,文件放置的位置,关键文件渲染的路径等等,这些是在HTTP/1.1 时代做的事情,那么在HTTP/2,性能优化应该怎么处理,引申出 HTTP/2 的知识点:HTTP/2 相比 HTTP/1.1 的更新大部分集中于:多路复用HEAD 压缩优先级请求...Holger Bartel
讲解的 HTTP/2 涉及的新概念太多,这里不能一一道来,只能是在大海里取一瓢水的感觉,这里只能暂时的记录一下,后面在去学习更新...总的来讲,HTTP/2 对未来 Web 性能优化工作起到很重要的作用,是一切优化的基础。推荐两篇有关HTTP/2的文章: 总结:在前端这个迭代更新如此快的领域,我们需要关注新的技术热点,但是也要保持自己的步伐;在几年前,MVC刚刚兴起的时候,backoneJS,angularJS是比较火热的,可是今天ReactJS、VueJS,EmberJS等的热度已经远远超过了backboneJS,angularJS;很多新的前端框架可能会让我们应接不暇;这个时候,我想应该静下来仔细想想,最本质的东西是什么;注释:以上内容,谨代表个人见解,有不当之处,或若涉及图片隐私或者其它问题,烦请指正.最后: 感谢前端圈组织的这次活动 ,希望明年会越办越好.文章同步在更多文章可以访问
已有帐号?
无法登录?
社交帐号登录来自子话题:
如今各种浏览器群雄逐鹿,特别是WebKit渲染核心势不可挡,但是在国内IE还是一个拥有庞大基数老大,续搜狗开发双核浏览器后,遨游、猎豹、QQ相继推出双核浏览器,双核浏览器在未来将成为主流!
如今各种浏览器群雄逐鹿,特别是WebKit渲染核心势不可挡,但是在国内IE还是一个拥有庞大基数老大,续搜狗开发双核浏览器后,遨游、猎豹、QQ相继推出双核浏览器,双核浏览器在未来将成为主流!
来自子话题:
&ol&&li&不存在单一 WebKit 统治的概念,因为市场上纯 WebKit 浏览器的市场占用率没有绝对优势,也就是 Safari/Mobile Safari/iOS Chrome 和基于 WebKit GTK+ 的浏览器等,其中 Safari 和 Mobile Safari 提供的特性还不完全一样。iOS 8 的新 WKWebView API 和原有的 UIWebView 提供的特性又不完全一致。&/li&&li&剩下的大部分市场是 Chromium/Blink 引擎 (桌面版 Chrome) 或者修改过的 Chromium/Blink 引擎 (Android 的 WebView、Opera 等),再加上 Gecko (Firefox 的桌面和 mobile 版本) 和 Trident (IE)。&/li&&li&总的说来现在的市场是参差多态又大势趋同,厂商主导、标准制订跟上,但又不是单一厂商主导,如果两个引擎厂商决定发布了的重要特性第三个厂商就不敢长期不提供。所以我们常常可以看到推销特性的人要去好几个“敌方阵营”去兜售,包括中立的第三方开发者 Yoav Weiss 这样的不搞定至少两个厂商也不敢开始做 &picture& 的实现,而这个实现一旦在 WebKit 和 Blink 完成了,Gecko 不跟上自然也不可能。&/li&&li&WHATWG 和 W3C 存在感极弱,代表基本上都是厂商雇佣来洗地的,已经没有独立主推一套标准的可能性了。&/li&&li&所以现在的浏览器市场更像是还没有始皇之前的战国时代,“周”已经没有任何影响力了,但几雄之间还没有绝对的高下,任何一家不注意都有被吞并的可能。&/li&&/ol&
不存在单一 WebKit 统治的概念,因为市场上纯 WebKit 浏览器的市场占用率没有绝对优势,也就是 Safari/Mobile Safari/iOS Chrome 和基于 WebKit GTK+ 的浏览器等,其中 Safari 和 Mobile Safari 提供的特性还不完全一样。iOS 8 的新 WKWebView API 和原有的…
来自子话题:
Webkit2 主要的贡献是 Apple,Webkit 的未来并不明朗。虽然 fork 一个 Blink 而且依然开源,但除掉 Apple 的代码后 Blink(包括现在主线的 Webkit)的最主要贡献者就是 Google 自己了,Google 认为这样可以加快改进速度。&br&&br&而且 Google 认为 Apple 在实现标准方面过于保守,Google 则更乐于实现各种草案标准,即使该标准处于 Working Draft 甚至是 Editor Draft 阶段,未来面临大改甚至废弃的可能。但是对于开发者来说,你必须把标准放出来给他们用,他们才能用实践告诉你这东西好不好用,要不要改,怎么改。
Webkit2 主要的贡献是 Apple,Webkit 的未来并不明朗。虽然 fork 一个 Blink 而且依然开源,但除掉 Apple 的代码后 Blink(包括现在主线的 Webkit)的最主要贡献者就是 Google 自己了,Google 认为这样可以加快改进速度。而且 Google 认为 Apple 在实现标准方…
来自子话题:
这个问题其实与Python没半毛关系,比如你可以把最后一句改成为什么没人去做过ruby在浏览器端的实现呢?还可以改成为什么没人去做过java在浏览器端的实现呢?等等。&br&&br&从历史的角度来看,JavaScript的发展一直与浏览器密不可分,最初由网景公司的Brendan Eich设计,叫LiveScript,后与Sun公司合作,改为JavaScript。后来Ecma国际以JavaScript为基础制定了ECMAScript标准。现在大家知道了制定标准的才是最牛B的了吧。&br&&br&再后来微软的IE干掉了NetScape后,以为自己牛叉了,开始搞VBScript,JScript,但是大家看微软霸着浏览器不更新不爽,Firefox、Chrome、Safari等浏览器开始出现,Google的V8和Apple的WebKit等牛引擎和框架出来后,JavaScript在浏览器端越发如鱼得水,而且随着V8和Node.js的出现开始侵入服务器端。&br&&br&那为啥JavaScript可以写服务器端程序,Python等语言不能去搞前端呢?其实还是标准决定一切。&br&&br&使用Node.js,开发者面对的是自己开发环境,你只要把自己面对的环境伺候好了就可以了,因为Node.js本身就是建立在标准之上(V8)的东西,而且,Node.js确实简化了服务器端的异步IO和事件驱动开发,这是它最大的意义。如果只是能在后端运行而毫无特性,估计这个技术的生命力不会长久。 &br&&br&但想让类似Python的语言在前端运行,你就得搞定所有浏览器和浏览器厂商。如果有个引擎能搞定Python语言解析,同时又得到各大浏览器厂商的支持,那这种可能性也不是没有。
这个问题其实与Python没半毛关系,比如你可以把最后一句改成为什么没人去做过ruby在浏览器端的实现呢?还可以改成为什么没人去做过java在浏览器端的实现呢?等等。从历史的角度来看,JavaScript的发展一直与浏览器密不可分,最初由网景公司的Brendan Eich设…
来自子话题:
可能是因为Firefox是GPL的,而Chrome是MIT的吧。
&br&&br& 另外,国内是因为Chrome正好赶上时间了。Firefox推出时,大家都在忙着在IE的基础上加壳,另外国内网站对于Web标准支持也不好,另外Firefox本身也比较丑一些。Chrome的推出,漂亮简洁的风格,可随意拖动的标签栏,随便给他加一个IE Tab插件再改成自己的名字就可以作为自己独家推出的“极速”浏览器面市啦~
可能是因为Firefox是GPL的,而Chrome是MIT的吧。 另外,国内是因为Chrome正好赶上时间了。Firefox推出时,大家都在忙着在IE的基础上加壳,另外国内网站对于Web标准支持也不好,另外Firefox本身也比较丑一些。Chrome的推出,漂亮简洁的风格,可随意拖动的标…
来自子话题:
没人回答我,于是我给两位开发者写了邮件,都给了我回复,贴出如下:&br&Aders的回复:&br&&br&Hello,&br&&br&WebKit2 for Windows has indeed ben removed from the repository as it is no longer being developed. I think both the Qt and GTK ports work on Windows.&br&&br&- Anders&br&&br&***********************&br&下面是Roger Fong的回复:&br&&br&We do not support any products that rely on WebKit2 atm so for now we have no plans to continue support WebKit2 on Windows.&br&WebKit1 however is still being maintained. &br&&br&If the need arises or if there is someone who actively wants to maintain WebKit2 on Windows then re adding those files in could become an option but right now it doesn’t make sense for us to maintain extra code that we aren’t using.&br&- Roger Fong
没人回答我,于是我给两位开发者写了邮件,都给了我回复,贴出如下:Aders的回复:Hello,WebKit2 for Windows has indeed ben removed from the repository as it is no longer being developed. I think both the Qt and GTK ports work on Windows.- Ande…
来自子话题:
已经解决了。总结一下方法希望对遇到相同问题的有帮助。&br&&p&1. 在项目的配置文件package.json 中加入&/p&&p&
&webkit&: {&/p&&p&
&plugin&: true&/p&&p&
}&/p&&p&2. 在package.json同目录下创建plugins文件夹&/p&&p&3. 从adobe官网下载安装Flash player的NPAPI版本,即Firefox版本。安装完成后window10环境下在C:\Windows\System32\Macromed\Flash目录可以找到类似NPSWF64_19_0_0_245.dll文件,复制&/p&&p&4. 粘贴到先前创建的plugins文件夹&/p&&p&注意区分32位64位插件,NPSWF64_19_0_0_245.dll为64位,NPSWF32_19_0_0_245.dll为32位&/p&&br&&p&采用测试方法如下:&/p&&p&删除本地安装的FlashPlayer。完成后打开nw的console,输入navigator.plugins,如果可以看到&/p&&img src=&/714dfb6086b_b.png& data-rawwidth=&598& data-rawheight=&140& class=&origin_image zh-lightbox-thumb& width=&598& data-original=&/714dfb6086b_r.png&&&br&&p&即表明加载成功。&/p&&p&删除掉NPSWF64_19_0_0_245.dll再打开nw,再次在console中输入navigator.plugins,找不到Flash插件项即表明项目使用的是本项目的Flash插件,而不是用户本地安装的Flash。&/p&&br&&br&&p&相关的资料在网上比较少,最后是在nw官方社区寻求帮助得到解决:&/p&&img src=&/adf12e041dbbd343baf603d_b.png& data-rawwidth=&799& data-rawheight=&446& class=&origin_image zh-lightbox-thumb& width=&799& data-original=&/adf12e041dbbd343baf603d_r.png&&
已经解决了。总结一下方法希望对遇到相同问题的有帮助。1. 在项目的配置文件package.json 中加入 "webkit": { "plugin": true }2. 在package.json同目录下创建plugins文件夹3. 从adobe官网下载安装Flash player的NPAPI版本,即Firefox版本。安装完成后windo…
来自子话题:
Maciej Stachowiak,蘋果 Safari / WebKit 項目的一個負著人在 Hacker News 一個討論串裏說:&br&&br&&blockquote&&a href=&///?target=https%3A///item%3Fid%3D5490242& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&As long as we are recapitulating history&i class=&icon-external&&&/i&&/a& — the main reason we built a new &b&multiprocess&/b& architecture is that Chromium’s multiprocess support was never contributed to the WebKit project. It has always lived in the &b&separate&/b& Chromium tree, making it pretty hard to use for non-Chrome purposes. Before we wrote a single line of what would become &b&WebKit2&/b& we directly asked Google folks if they would be willing to contribute their multiprocess support back to WebKit, so that we could build on it. &u&They said no.&/u&&/blockquote&&br&Google 從 WebKit 得到他們想要的輕量級排版渲染引擎,也得到社区的支持。但我們看到那些他們貢獻的 activity 却大多也只是在他們自己獨立的 Chromium tree 下面。當 WebKit 社區需要他們的回饋是,他們選擇作一個混蛋。&br&&br&現在他們遷移出去作為一個獨立的分支,對整個 WebKit 社區來講未必不是一件好事,那些針對 Chromium port 做的特別支持現在已無必要。无论怎么说,可以&a href=&///?target=https%3A//lists.webkit.org/pipermail/webkit-dev/2013-April/024388.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&精减代码&i class=&icon-external&&&/i&&/a&就是好事。
Maciej Stachowiak,蘋果 Safari / WebKit 項目的一個負著人在 Hacker News 一個討論串裏說: — the main reason we built a new multiprocess architecture is that Chromium’s multiprocess support was never…
来自子话题:
1. gecko是MPL/GPL/LGPL的,从而限制了商业使用。webkit是BSDL的,可以放心的被商业应用,才有可能出现在Google Chrome里。License有多重要,看Webkit里只LGPL开源的js引擎,Google就需要自己搞一套v8出来;
&br& 2. Mozilla的使命是通过推广标准促进互联网开放,而采用Webkit的浏览器都是作为自身解决方案/整体战略的一部分。KPI的内容都不一样啊;
&br& 3. Mozilla在移动平台下手晚了,而且站错队了。Linux系统和Atom处理器在移动市场上都不成功;
&br& 4. @貘吃馍香 说的也是非常重要的一方面。
1. gecko是MPL/GPL/LGPL的,从而限制了商业使用。webkit是BSDL的,可以放心的被商业应用,才有可能出现在Google Chrome里。License有多重要,看Webkit里只LGPL开源的js引擎,Google就需要自己搞一套v8出来; 2. Mozilla的使命是通过推广标准促进互联网开放…
来自子话题:
这种“往下挖”的思考方式普遍存在于计算机学科各个角落,然而是非常有害的思维方式。类似的还有学语言最好看编译器源码,最好学汇编,而学汇编和嵌入式开发最好学cpu架构,学系统管理,部署则最好看看操作系统如何实现等等不一而足。&br&&br&然并卵&br&&br&计算机是逻辑性很强的学科,每个概念都有一套核心的理论体系。学习理解这套理论就可以用从它出发来影响现实世界,现实如果未如你所料的按照理论预测的方式被改变,就应当审视逻辑自洽性和严密性。同时理论体系还有其实现,往往这是另一个体系改变现实的体现(如果是同一个就叫自举)。程序员要干的,就是当理论与现实不符的时候,改变现实,理论与实现不符的时候,改变实现,理论与理论不符的时候,改进完善理论。&br&&br&所以一切以你要学习的核心理论体系为先,而不是其实现。
这种“往下挖”的思考方式普遍存在于计算机学科各个角落,然而是非常有害的思维方式。类似的还有学语言最好看编译器源码,最好学汇编,而学汇编和嵌入式开发最好学cpu架构,学系统管理,部署则最好看看操作系统如何实现等等不一而足。然并卵计算机是逻辑性…
来自子话题:
别的不多说了,强烈建议看看前几天刚写的一篇文章:&a href=&///?target=http%3A///mobile/lib-flexible-for-html5-layout.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&使用Flexible实现手淘H5页面的终端适配&i class=&icon-external&&&/i&&/a& 应该能让你找到需要的答案
别的不多说了,强烈建议看看前几天刚写的一篇文章: 应该能让你找到需要的答案
来自子话题:
Vivaldi 是 Presto Opera 死忠粉情感上的延續&br&&br&評價 Vivaldi 前請先深度使用 Presto Opera&br&評價 Vivaldi 前請牢記其 slogan:「A new browser for our friends」
Vivaldi 是 Presto Opera 死忠粉情感上的延續評價 Vivaldi 前請先深度使用 Presto Opera評價 Vivaldi 前請牢記其 slogan:「A new browser for our friends」
来自子话题:
对Apple不了解的人,会把Google、Apple放在对立面,Google所有的东西都是开源的,Apple所有的东西都是闭源的。&br&&br&事实上,Apple开源的项目可以从这里看到:&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&,还有这里:&a href=&///?target=http%3A//www.macosforge.org/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&macosforge.org/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&开源了Darwin系统以后,Apple声称自己是世界上最大的开源软件公司,这个典故可以参见这里:&a href=&///?target=http%3A//.cn/6617/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&.cn/6617/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&。&br&程序员上的Mac OS X背后的故事很有趣,如果想读可以从这里读到:&a href=&///?target=http%3A//www& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&www&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&. &a href=&///?target=http%3A//.cn/category/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&.cn/categ&/span&&span class=&invisible&&ory/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&程序春秋/,请自行删除空格。
对Apple不了解的人,会把Google、Apple放在对立面,Google所有的东西都是开源的,Apple所有的东西都是闭源的。事实上,Apple开源的项目可以从这里看到:,还有这里:开源了Darwin系统以后,Apple声称自己是世界上…
来自子话题:
这就好像是现代计算机键盘上按键的顺序,虽然不是效率最高的,但你要改大家肯定觉得你蛋疼。只有javascript所有浏览器都支持,所以大家都用javascript,并不是因为它有多好,而是因为没得选。如果要在浏览器端推行python那么就要让所有的主流浏览器厂商同时支持,还要制定一堆的标准。除非带来质的改变否则有点得不偿失。
这就好像是现代计算机键盘上按键的顺序,虽然不是效率最高的,但你要改大家肯定觉得你蛋疼。只有javascript所有浏览器都支持,所以大家都用javascript,并不是因为它有多好,而是因为没得选。如果要在浏览器端推行python那么就要让所有的主流浏览器厂商同时…
来自子话题:
Chrome是基于WebKit内核的,Google同事推出了Chrome的工程版Chromium。&br&&br&WebKit是Mac OS X v10.3及以上版本所包含的软件框架。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司的一些组件。&br&&br&Chromium在构架构上使用了苹果发展出来的WebKit排版引擎、Safari的部份源代码与Firefox的成果,并采用Google独家开发出的V8引擎以提升解译JavaScript的效率。&br&&br&任何人都可以在Chromium上进行二次加工和修改,国内主要有枫树浏览器、世界之窗浏览器极速版、搜狗高速浏览器、360浏览器极速版、QQ浏览器
Chrome是基于WebKit内核的,Google同事推出了Chrome的工程版Chromium。WebKit是Mac OS X v10.3及以上版本所包含的软件框架。同时,WebKit也是Mac OS X的Safari网页浏览器的基础。WebKit是一个开源项目,主要由KDE的KHTML修改而来并且包含了一些来自苹果公司…
当年Firefox从Mozilla项目中涅槃而出的时候,第一个要解决的问题就是Layout,而Layout是Gecko的核心组件,从那时到现在Gecko经历了超过十年的进化时间,所以,先说最大的问题就是他已经变的异常庞大,代码结构非常复杂,基本上到现在很少有人还能够清楚的知道gecko的每一个细节。&br&&br&我个人觉得Gecko的魅力存在于他的架构设计上,现在可能已经没有清楚的界限分隔,所以下面提供的内容在某个时期不一定是属于Gecko部分的,不过从现在的角度来说Gecko代表Firefox整个的内核引擎。&br&&br&XUL提供统一的界面描述语言,对于控件的制作完全使用描述性/解释性的语言就可以完成,并且由于XUL提供的超强描述能力,基本可以在任何有XUL的地方进行扩展,所以理论上Firefox的Addon可以插到系统的任何地方,这个跟Chrome的扩展API是有本质区别的,XUL在这些年也发展的越来越庞大,最后核心部分提取为XULRunner,Firefox/Thunderbird或者任何基于Mozilla/Gecko技术的应用都可以理解为是运行在XULRunner这个虚拟机上的。而Mozilla也希望有开发人员基于XULRunner直接开发桌面应用。&br&&br&XPCOM是Gecko中又一个利器,本身概念等同于甚至超越同期的COM/DCOM等组件技术的,浏览器中大量的基础组件都是通过XPCOM的方式提供的,从文件系统到网络访问,从书签访问到外观控制,没有统计过Gecko中提供的XPCOM一共有多少,估计数量一定很多,而XPCOM也是提供Gecko扩展能力的超强武器,是软件复用的有力封装工具,扩展本身接入到平台上之后提供的XPCOM服务可以被其他扩展使用,大大提供软件复用能力。&br&&br&XPConnect提供了多语言的接入能力,你可以使用XUL/JavaScript,可以使用C/C++、Java、Python来实现XPCOM、Module等,将这些语言制作的二进制扩展接入到平台中,当然他是从属于XPCOM的。&br&&br&我觉得阻挡Gecko前进的最大问题就是复杂度的与日俱增,太多的东西没有被隔离而直接被接入平台,在提供超强的扩展能力同时,也带入了更多的复杂度——可阅读能力差、代码复杂、维护难度高。从渲染角度我觉得差距不一定很大,现在对于Render/Layout的实现大家的实现基础基本是一致的,但是能够看到Webkit对于新CSS标准的实现很快,代码进化很快能够完成,而Gecko就显得老态龙钟。而从JavaScript角度来说,Google V8的绝密飞行领先所有浏览器厂商两年多,这个大家都不太好追,Chrome内核优势大大的。
当年Firefox从Mozilla项目中涅槃而出的时候,第一个要解决的问题就是Layout,而Layout是Gecko的核心组件,从那时到现在Gecko经历了超过十年的进化时间,所以,先说最大的问题就是他已经变的异常庞大,代码结构非常复杂,基本上到现在很少有人还能够清楚的知…
来自子话题:
想写的都已经发在这里了:&a href=&/hllvm/& class=&internal&&[新闻][JavaScript引擎] WebKit JavaScriptCore用新的B3编译器后端替代FTL JIT中的LLVM - 编程语言与高级语言虚拟机杂谈(仮) - 知乎专栏&/a&&br&&br&我们也用LLVM做JIT编译器,所以对B3的消息还挺关注的。但感觉B3相对LLVM的部分好处,其实靠增强/改进LLVM自身也可以达到;这次分家感觉还是Filip跟LLVM组在撕…
想写的都已经发在这里了:我们也用LLVM做JIT编译器,所以对B3的消息还挺关注的。但感觉B3相对LLVM的部分好处,其实靠…
来自子话题:
我觉得他们没这本事去做,所谓 X5,不过是一个早期的 WebKit fork 而已。
我觉得他们没这本事去做,所谓 X5,不过是一个早期的 WebKit fork 而已。
来自子话题:
chrome的份额就是最大的贡献。&br&依靠着chrome,webkit的份额渐渐得到了前端开发人员的重视。并且给微软足够的压力去向html5标准靠拢,并且迫使微软主动在全球范围内“消灭ie6”。
chrome的份额就是最大的贡献。依靠着chrome,webkit的份额渐渐得到了前端开发人员的重视。并且给微软足够的压力去向html5标准靠拢,并且迫使微软主动在全球范围内“消灭ie6”。
来自子话题:
我们可以使用标签来指定适合自己网站的渲染内核名称,当双核浏览器访问本网页时,就会根据我们的指示,选择我们指定的渲染内核来处理网页。
&p&若页面需默认用极速核,增加标签:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&meta name=&renderer& content=&webkit&&
&/code&&/pre&&/div&&p&若页面需默认用ie兼容内核,增加标签:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&meta name=&renderer& content=&ie-comp&&
&/code&&/pre&&/div&&p&若页面需默认用ie标准内核,增加标签:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&meta name=&renderer& content=&ie-stand&&
&/code&&/pre&&/div&&p&我们只需在网站的head标签中添加上面的代码,即可以相对应的模式来渲染网站。&/p&&p&同时我们也可以同时指定多个内核名称,之间以符号”|”进行分隔,如下代码:&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&meta name=&renderer& content=&webkit|ie-comp|ie-stand&&
&/code&&/pre&&/div&&p&此时浏览器将会按照从左到右的先后顺序选择其具备的渲染内核来处理当前网页。&/p&&p&提示:目前只有360旗下全系列双核浏览器识别该meta标签。其他浏览器厂商可能会在以后版本的浏览器中添加对该meta标签的支持。 &/p&&br&版权声明:转载时请以超链接形式标明文章&a href=&///?target=http%3A//www.iefans.net/copyright/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&原始出处&i class=&icon-external&&&/i&&/a&和作者信息及本声明&br&
文章引用地址:&a href=&///?target=http%3A//www.iefans.net/meta-zhiding-shuanghe-liulanqi-ie-neihe-xuanran-wangye/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&iefans.net/meta-zhiding&/span&&span class=&invisible&&-shuanghe-liulanqi-ie-neihe-xuanran-wangye/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 作者:iefans
我们可以使用标签来指定适合自己网站的渲染内核名称,当双核浏览器访问本网页时,就会根据我们的指示,选择我们指定的渲染内核来处理网页。
若页面需默认用极速核,增加标签:&meta name="renderer" content="webkit"&若页面需默认用ie兼容内核,增加标签:…
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 js前端模板引擎 的文章

 

随机推荐