作为一个前端,最烦恼的应该是如何让网页在所有浏览器下都能正常浏览。这是一项不断变化和繁琐的工作,我现在就来总结一下我在工作中遇到的问题和解决的办法。
首先,需要了解浏览器内核不同,导致了网页渲染效果不同。 从网上众多的介绍中,我总结了一下这些要点:
1.简单来说浏览器可以分为两部分,外壳(Shell)+内核(Rendering Engine)。 外壳主要是提供给用户界面操作,参数设置等等,是调用内核来实现各种功能的;而内核是浏览器核心,基于标记语言显示内容的程序或模块。浏览器内核的不同使得其对网页代码的解释不同,导致渲染效果不同。
2.浏览器内核又可以分成两部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。 罗列一些主要内核及使用的浏览器: Trident内核:IE6、IE7、IE8(Trident 4.0)、IE9(Trident 5.0)、IE10(Trident 6.0)、360安全浏览器、傲游、搜狗浏览器、腾讯TT等;(后面这堆国内的浏览器新版都是双核,一般把Trident称作则是“兼容浏览模式”,而其他内核叫做“高速浏览模式”,用户可以来回切换。) Gecko内核:Mozilla Firefox(火狐浏览器)、Mozilla SeaMonkey、Epiphany(早期版本)、Flock(早期版本)、K-Meleon等; Presto内核:Opera7及以上 Webkit内核(Chromium):Apple Safari (Win/Mac/iPhone/iPad)、Symbian手机浏览器、Android 默认浏览器;Google Chrome、Chromium、SRWare Iron、Comodo Dragon;
而 JavaScript 引擎则影响着网页中js的执行速度,由于网页中通常有大量js代码,因此js引擎的解释速度大大影响了网页的响应速度。
3.这些内核都有什么优缺点。 业界内公认,Opera的Presto内核在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,但缺点就是为了达到很快的速度而丢掉了一部分网页兼容性;Chrome的Webkit内核优点就是网页浏览速度较快,虽然不及 Presto 但是也胜于 Gecko 和 Trident,缺点是对于网页代码的容错性不高,也就是说对网页代码的兼容性较低,会使一些编写不标准的网页无法正确显示;火狐的Gecko内核优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存;而IE低版本(IE6,7)的Trident内核和W3C标准脱节,大量Bug等安全问题没有得到解决, IE7只是对IE6的小小增强,IE8完全支持CSS2.1和选择器,DOM操作更符合W3C标准,但DOM支持仍不完整,IE9 完全支持DOM L1,DOM L2,Jscript更符合标准,ECMAScript5支持,HTML5,CSS3支持,SVG支持,因此IE6,,IE7也是在做兼容时最令人头疼的。
其他一些细节可以参考以下这些文章: 浏览器内核的解析和对比 [科普文] 关于浏览器内核的一些小知识,明明白白选浏览器!
其次,有必要先了解国内浏览器的使用情况。 根据百度统计的流量研究院发布的数据,过去三个月的浏览器市场份额如下图:
浏览器市场份额报告_2016.06-2016.08_版本.png
浏览器市场份额报告_2016.06-2016.08-1_品牌.png
可以从中看出,国内使用IE和chrome的人不相上下,而IE略多,我觉得主要“归(ze)功(guai)”于windows预装和360、搜狗、百度等双核浏览器。而IE中使用8.0版本的最多,其次为IE9,IE7,IE6。这应该是因为winXP预装的是IE6,最高能升级到IE8,winVista 预装IE7,最高到IE9, win7自带IE8,最高到IE11,win8自带IE11。
综上所述,需要做兼容的主要对象为IE8及更低版本(IE6,IE7),而IE8的使用人群很庞大,不得不重视,为其做兼容,而IE6,IE7视情况可忽略。
那么,问题来了:究竟IE8及更低版本与其他浏览器有什么不同之处呢?
最大的问题,IE8不支持HTML5 和 CSS3。这很正常嘛,IE8发布的时候还没有这两样东西呢。。。IE9+就已经可以支持了。而其他浏览器都没有那么多版本存在。。。。
先说比较简单的,IE8兼容HTML5.
HTML5有许多新特性都令网页变得酷毙了,其中一些是通过标签实现的,比较重要、使用频率比较高的,有音频(audio)、视频(video)、画布(canvas)、矢量图(svg)等,如果你的网页中用到这些新技术,就可以直接放弃IE8及更低版本了,解决方法是建立多套模板,通过程序对User-Agent的判断(后台判断)为不同的浏览器用户显示不同的页面,案例如:优酷网。
而如果只是布局内容方面的新标签,如article,aside,dialog,footer,header,section,footer,nav,figure,menu等,则可以使用Google的html5shiv包,代码如下:
也可以直接到GitHub下载,自己引用。GitHub中还有详细的文档描述,地址为https://github.com/afarkas/html5shiv
但由于HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局
1
2
3
article, aside, dialog, footer, header, section, footer, nav, figure, menu{
display : block
}
HTML5的新标签能让代码语义化更直观,而且更方便SEO优化,但如果觉得这不太重要,就可以不用这些新标签去写,直接用div代替就不用考虑兼容了。
IE8及以下版本对CSS3的兼容就显得比较麻烦了,甚至IE6和IE7之间对CSS2的某些规则都不兼容,只能用hack了。(这里只总结使用W3C标准写的代码向下兼容,忽略在IE6,IE7环境下写的网页的向上兼容。)其中我认为比较大的问题是IE8看不懂media query!这可要命了,现在比较流行的是移动设备端优先的写法,bootstrap等UI框架都是这样写,这可在IE中乱了套;其次的border-radius,box-shadow,text-shadow,flex-box等都还好,只要页面不乱,难看一点也没关系;还有就是伪类和属性选择器,使得一些元素不能显示;最后就是2D动画和3D动画,transition过渡效果等比较炫的效果,没有也似乎不是很大关系,用IE8以下的估计对这个也不感冒。
以下总结下网上比较多的解决方法和自己在写网页中遇到的问题:
IE8可以利用X-UA-Compatible这个专有 属性,它告诉IE8采用何种IE版本去渲染网页,在html的
标签中使用。
IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame[1]。
更详细的介绍X-UA-Compatible可以参考文章给网站添加X-UA-Compatible标签,和使用X-UA-Compatible来设置IE浏览器兼容模式,改变content内“IE=”的值,可以强制IE8用IE9,IE7,IE6等渲染。
最新的IE的渲染效果已经与谷歌无二致。
但是为保险,还是做些hack的工作好。
要IE8看懂media query,可以在头部引入respond.js或google的css3-mediaqueries.js使其支持查询。网上的博客大多比较偏向respond.js,只支持min-width和max-width,所以很小巧,已经够用了。原理、用法和注意事项可以参考这篇文章,写的很全面,HTML5 respond.js 解决IE6~8的响应式布局问题。我在github下载了之后直接打开test.html,发现用不了,看了这篇文章之后才了解了要在本地配置服务器,不能直接打开,了解了原理才知道。官方文档介绍得很详细,https://github.com/scottjehl/Respond
IE8有很多伪类选择器和属性选择器也是不认的,这篇文章总结了伪类在主流浏览器中的支持情况CSS选择器的浏览器支持,解决的方法就是直接在头部引用selectivizr.js,官方文档http://selectivizr.com/
而要让IE8及以下看懂,box-shadow, text-shadow, border-radius, gradient等属性,就可以用IE才认的pie.htc,具体使用方法和可以参看大牛写的这篇文章PIE使IE支持CSS3圆角盒阴影与渐变渲染,还有官方文档http://css3pie.com/。大牛的文章里面还提到了其他方法能使IE正确渲染出这些常用属性。
transition,animation等比较厉害的属性暂时没有找到好的支持方法,这种就可以直接用js搞定了。
总结下,一个兼容IE8及以下版本的的网页头部是这样样子的
1
2
3
4
5
6
7
你可能感兴趣的:(浏览器兼容)
Playwright Python 教程
PlaywrightPython教程1.项目介绍Playwright是一个用于自动化浏览器操作的开源工具,支持多种浏览器和设备,旨在为每个平台提供无缝的用户体验。Playwright的直观API、跨浏览器兼容性和视觉调试工具,结合Python语言,可以彻底改变您的测试活动。本教程基于开源项目PlaywrightPythonTutorial,旨在帮助您快速上手并深入了解Playwright在Pyth
Selenium+Java 自动化测试入门到实践:从环境搭建到元素操作
yy鹈鹕灌顶
selenium java 测试工具
在自动化测试领域,Selenium凭借其强大的跨浏览器兼容性和灵活的API,成为Web应用测试的首选工具。而Java作为一门稳定且广泛应用的编程语言,与Selenium结合能构建出高效、可维护的自动化测试框架。本文将从环境搭建开始,逐步介绍Selenium+Java的核心用法,帮助新手快速上手。一、环境搭建:让工具跑起来1.安装Java开发环境Selenium的Java客户端需要依赖JDK,建议安
exports使用 package.json字段控制如何访问你的 npm 包
前端 贾公子
json npm 前端
目录想象一下你正在开发一个npm包……术语什么是exports领域?exports好处保护内部文件多格式包将子路径映射到dist目录子路径导出单一入口点多个入口点公开软件包文件的子集有条件出口设置使用条件默认条件句法针对Node.js和浏览器想象一下你正在开发一个npm包……您希望提供多个入口点,但同时限制对内部文件的访问。您需要同时支持CJS和ESM,包含类型定义,甚至可能还要确保浏览器兼容性。
基于ASP.Net Core 开发的纯BS结构的RoadFlow工作流平台
基于ASP.NetCore开发的纯BS结构的RoadFlow工作流平台RoadFlow是一款集成工作流引擎的ASP.NETCOREMVC快速开发框架,由从事多年工作流开发与实施的技术团队开发。该工作流平台是根据多年对企事业单位工作流应用经验总结而成,是一款符合于国情的工作流平台,特别适合于国内无标准,复杂多变的工作审批流转。拥有全浏览器兼容的可视化流程设计器、表单设计器、灵活精细的权限管理等先进设
【自动化从入门到进阶】Playwright 实战指南,提升测试效率必修课!
朱公子的Note
python Playwright 自动化
你是否也有过“页面点击没反应,接口明明没问题”的糟心经历?就算写再多单元测试,也无法覆盖复杂的用户交互。而Playwright的出现,正为前端开发者和QA带来一剂“提效良方”:跨浏览器、强校验、自动重试、不再依赖Selenium!在2025年的软件开发浪潮中,Web应用的复杂性和用户期望持续攀升,单页应用(SPA)和跨浏览器兼容性让测试变得更加关键。想象一下,您的电商平台上线后因未发现的UI错误导
前端开发常见问题
技术文章大纲性能优化问题页面加载速度慢的常见原因及解决方案渲染阻塞资源的处理方法图片与媒体文件优化策略懒加载与代码分割的实现方式浏览器兼容性问题不同浏览器对CSS特性的支持差异JavaScriptAPI的兼容性处理方案Polyfill的使用场景与实现方法自动化测试工具在兼容性测试中的应用响应式设计挑战移动端与桌面端布局适配问题媒体查询的最佳实践方案视口单位与相对单位的正确使用高DPI屏幕的图像处理
【第5章 动画】5.11 动画制作的最佳指导原则
ncj393437906
《HTML5 Canvas核心技术 图形 动画与游戏开发》 canvas
文章目录在制作动画时,请牢记下列指导原则:使用类似requestNextAnimationFrame()这样的“polyfill式”方法来保持浏览器兼容性。将业务逻辑的更新与动画的绘制分开。使用“基于时间的运动”来协调动画的播放速度。用剪辑区域或图块复制技术将复杂的背景图像恢复到屏幕上。必要时可使用一个或多个离屏缓冲区以提升背景的绘制速度。不要通过CSS指定阴影及圆角效果。不要在Canvas中进行
10、 浏览器兼容性与转译:确保JavaScript代码在不同浏览器中正常运行
张哲华
浏览器兼容性 JavaScript 转译
浏览器兼容性与转译:确保JavaScript代码在不同浏览器中正常运行1.浏览器兼容性挑战现代Web开发中,浏览器兼容性是一个不容忽视的重要问题。不同的浏览器在
前端开发常见问题(从布局到性能优化)
白仑色
前端系列 前端开发 HTML CSS JavaScript 性能优化 响应式布局 跨域
前端开发作为连接用户与产品的重要桥梁,涉及HTML、CSS和JavaScript的综合运用。但在实际开发过程中,开发者常常会遇到各种“坑”,比如页面布局异常、跨域请求失败、性能瓶颈、浏览器兼容性差等问题。本文将围绕前端开发中常见的十大问题展开讲解:页面布局相关问题(盒模型、浮动、Flex布局)CSS样式冲突与继承JavaScript异步处理(Promise、async/await)跨域问题及解决方
vue3日历组件/定位签到打卡/缺卡补卡功能
我在北京coding
Vue3 vue.js 前端 javascript
效果如上图:vue3日历组件支持定位、签到、打卡、缺卡、补卡、日历信息展示、日历翻页等功能,浏览器兼容性很好,类似钉钉这种打卡软件。完整源码:⋘{{year}}年{{month}}月⋙&
React + PDF.js 预览 PDF 文件:从基础实现到高级优化的完整指南
EndingCoder
前端开发 javascript react.js pdf 前端 前端框架
关键点PDF.js:Mozilla开发的开源JavaScript库,用于在浏览器中渲染PDF文件。React集成:结合React组件化特性,实现高效、交互式的PDF预览功能。功能实现:支持PDF文件加载、页面导航、缩放、搜索、书签和注释。优化策略:包括性能优化(懒加载、缓存)、可访问性和手机端适配。常见问题:处理大文件加载、跨浏览器兼容性和内存管理。实践场景:通过一个文档管理应用,展示PDF.js
前端开发避坑指南:从浏览器兼容到性能优化,这些 “坑“ 你踩过几个???
敲代码的苦13
HTML 性能优化 html5 前端 css
一、浏览器兼容性:前端开发者的"跨次元挑战"不同浏览器对HTML、CSS、JavaScript的解析规则存在差异,这是前端开发中最常见的"拦路虎"。CSS样式错乱:例如IE浏览器不支持flex布局的部分属性,或对box-sizing的默认值与Chrome不同,导致页面在不同浏览器中显示效果千差万别。JavaScript语法兼容:旧版浏览器(如IE11)不支持ES6+的箭头函数、Promise等语法
HTML表格导出为Excel文件的实现方案
~风清扬~
前端技术 html excel 前端
1、前端javascript可通过mime类型、blob对象或专业库(如sheetjs)实现html表格导出excel,适用于中小型数据量;2、服务器端方案利用后端语言(如python的openpyxl、java的apachepoi)处理复杂报表和大数据,确保安全性与格式控制;3、常见问题包括数据类型识别错误、样式丢失、大文件卡顿、浏览器兼容性及乱码,需通过设置单元格类型、使用后端样式api、分页
一份来自前端开发工程师的规范简历
追影的React开发者
前端 javascript photoshop
个人资料姓名:嘻嘻性别:女电话:12132323613邮箱:
[email protected] 现居地:上海市工作年限:3年求职意向期望职位:前端开发工程师期望薪资:面议工作性质:全职到岗时间:离职,一周内入职专业技能精通DIV+CSS页面布局,重构,掌握JavaScript,熟悉w3c标准,了解HTML语义化有一定的了解。熟练运用浏览器兼容技术,熟练进行前端性能优化设计。熟练掌握HTML5技术
Vue3 - 详解播放m3u8视频流+HLS拉流推流完整方案,vue3如何播放m3u8格式文件实时视频播放教程(流媒体播放、直播视频流、实时摄像头监控视频流对接、后端服务器切片分片传输视频流边下边播)
王二红
+ Vue3 开发问题汇总 vue3 m3u8 hls vue3播放m3u8视频流教程 vue播放m3u8文件 vue3直播视频流播放 摄像头实时监控画面视频流
前言如果您需要Vue2版本,请访问这篇文章。在vue3(PC端+移动端H5)项目开发中,实现m3u8+hls视频流播放、实时流媒体播放高性能无延迟方案及源码,vue3播放3mu8文件/直播视频流,实时流媒体播放需求、做直播实时传输播放、摄像头监控画面视频流、服务器后端视频切片分段返给前端+边下边播等需求,解决前端网页播放视频流卡顿加载慢、无法载入黑屏、播放不流畅、CORS跨域、安卓苹果浏览器兼容等
【CSS-14-基础样式表Base.css】如何编写高质量的Base.css:前端样式重置与基础规范指南
AllenBright
# CSS 前端 css
在前端开发中,Base.css(也称为重置样式表或基础样式表)是整个项目样式的基石。它负责消除浏览器默认样式的差异,建立统一的样式基准,为后续开发提供一致的起点。一个精心设计的Base.css能够显著提高开发效率,减少浏览器兼容性问题,并保持项目样式的一致性。1.Base.css的核心作用样式重置(Reset):消除不同浏览器之间的默认样式差异基础规范(BaseRules):定义项目通用的基础样式
浏览器兼容性(手机、电脑。js、html、css)
weixin_44828071
浏览器兼容性13标准网页布局的兼容性处理标准网页设计的最大挑战不在于技术本身,而在于浏览器兼容性处理。所谓浏览器兼容问题,就是当我们使用不同的浏览器(如IE7、IE6、Firefox等)访问同一个页面时,可能会出现不一致的情况,出现这种现象的原因有很多种,但根本原因就是浏览器对于技术支持的标准不同造成的。IE浏览器对于标准技术的支持是很不完善的,这些问题可以分为两种:一种是IE支持某种技术或功能,
关于HTML/CSS/JS常见兼容性整理
_Daniel_
13标准网页布局的兼容性处理标准网页设计的最大挑战不在于技术本身,而在于浏览器兼容性处理。所谓浏览器兼容问题,就是当我们使用不同的浏览器(如IE7、IE6、Firefox等)访问同一个页面时,可能会出现不一致的情况,出现这种现象的原因有很多种,但根本原因就是浏览器对于技术支持的标准不同造成的。IE浏览器对于标准技术的支持是很不完善的,这些问题可以分为两种:一种是IE支持某种技术或功能,但是实现该功
移动端开发中设备、分辨率、浏览器兼容性问题
程序猿--豪
webpack 性能优化 前端
以下是针对移动端开发中设备、分辨率、浏览器兼容性问题的系统化解决方案,按开发流程和技术维度拆解,形成可落地的执行步骤:一、基础环境适配:从「起点」杜绝兼容性隐患1.Viewport元标签标准化关键点:width=device-width:确保布局宽度与设备物理宽度一致。user-scalable=no:禁用用户缩放,避免布局错乱。补充:针对iOS10+刘海屏安全区域适配:body{padding:
前端开发:Javascript 与 CSS3 动画的融合
前端视界
前端艺匠馆 javascript css3 开发语言 ai
前端开发:Javascript与CSS3动画的融合关键词:JavaScript、CSS3动画、前端开发、动画性能、事件驱动、硬件加速、浏览器兼容摘要:本文深入探讨JavaScript与CSS3动画的融合技术,解析两者在前端动画领域的优势互补机制。通过对比分析基础动画原理,揭示事件驱动、状态控制、性能优化的核心逻辑,结合具体代码案例演示交互动画实现方案。详细讲解硬件加速原理、浏览器渲染机制、数学缓动
JavaScript基础-navigator 对象
咖啡の猫
javascript 开发语言 ecmascript
一、前言在前端开发中,JavaScript提供了多个浏览器对象模型(BOM)对象来与浏览器进行交互。其中,navigator对象是一个非常实用的内置对象,它提供了关于当前浏览器和设备环境的信息。通过navigator对象,我们可以获取:浏览器名称、版本;操作系统类型;是否启用了Cookie;用户的语言设置;网络连接状态;地理位置权限等;这些信息可以帮助我们实现浏览器兼容性判断、用户行为分析、设备适
ajax关键知识点之XMLHttpRequest中请求参数编码与跨浏览器兼容
奋斗的小羊羊
ajax 前端 javascript
ajax关键知识点之XMLHttpRequest中请求参数编码与跨浏览器兼容大家好!写作本文的初衷是希望能和各位一起学习进步,深入探讨Ajax开发中XMLHttpRequest(XHR)对象处理请求参数时的编码问题及跨浏览器兼容方案,通过解析不同请求类型下的编码差异与解决方案,帮助大家解决开发中常见的中文乱码与浏览器兼容性难题。以下将总结核心知识点并进行通俗化讲解,助力大家构建稳定、可靠的前端与服
每天一个前端小知识 Day 7 - 现代前端工程化与构建工具体系
蓝婷儿
前端
现代前端工程化与构建工具体系1.为什么要工程化?(面试高频问题)问题痛点:模块太多、无法组织;代码冗长、性能差;浏览器兼容性差;团队协作混乱,缺少规范与自动化。工程化目标:✅提升开发效率✅保证代码质量✅实现构建优化与产出部署自动化2.模块化规范回顾(理解构建目标)模块规范适用环境示例IIFE早期浏览器(function(){})()CommonJSNode.jsconstfs=require('f
CSS3 背景裁剪:background-clip 的创意用法
大厂前端小白菜
C css3 前端 css ai
CSS3背景裁剪:background-clip的创意用法关键词:CSS3、background-clip、背景裁剪、文字背景、创意设计、盒子模型、浏览器兼容性摘要:CSS3的background-clip是一个能“裁剪背景画布”的神奇属性。它能精准控制背景的显示范围,从传统的边框、内边距、内容区域,到更前沿的“文字轮廓裁剪”,为网页设计带来了无限可能。本文将从基础原理到创意实战,用“剪窗花”的比
浏览器基础及缓存
小盐巴小严
前端应用开发学习笔记 缓存 前端
目录浏览器概述主流浏览器:IE、Chrome、Firefox、SafariChromeFirefoxIESafari浏览器内核核心职责主流浏览器内核JavaScript引擎主流的JavaScript引擎浏览器兼容性浏览器渲染渲染引擎的基本流程DOM和render树构建html解析DOM渲染树与DOM树的关系布局绘制浏览器缓存静态资源缓存-相关概念静态资源缓存-影响因素控制静态缓存方式1:html中
基础篇12—CSS3中displex:flex弹性盒布局详解
言程序plus
CSS从入门到精通 css3 css 前端
前言:长久以来,CSS布局中唯一可靠且跨浏览器兼容的创建工具只有float和position。这两个工具大部分情况下都很好使,但是在某些方面它们具有一定的局限性,让人难以完成任务。以下简单的布局需求是难以或不可能用这样的工具(float和position)方便且灵活的实现的:
一文搞懂什么是 PostCSS
一文搞懂什么是PostCSS在Web应用开发中,CSS代码的编写是重要的一部分。CSS规范从最初的CSS1到现在的CSS3,再到CSS规范的下一步版本,规范本身一直在不断的发展演化之中。这给开发人员带来了效率上的提高。不过与其他Web领域的规范相似的处境是,CSS规范在浏览器兼容性方面一直存在各种各样的问题。不同浏览器在CSS规范的实现方面的进度也存在很大差异。另外,CSS规范本身的发展速度与社区
indexedDB概念和实践
zhangpanjun
db 数据库 database
目录是什么为什么需要indexedDB/使用场景有什么特点与浏览器其他的存储方式对比关键概念理解事务特点:浏览器兼容性如何使用基本模式如下:以上模式践行,可以参考具体代码。缺陷处理存储磁盘满了,会被无感知删除掉存的数据吗?不同浏览器兼容性怎么处理?基于indexedDB的第三方库---localForage特点:使用模式如下:代码实践请参考:引用链接:是什么浏览器内置的提供客户端存储大量结构化数据
前端垫片chimp
鸡吃丸子
前端
我们在前端开发时常常会遇到各种各样的问题,比如浏览器兼容性、布局调整、样式冲突等。这些问题可能会让我们感到头疼,但幸运的是,我们有一些强大的工具可以帮助我们解决这些问题——Chimp垫片。一、什么是Chimp垄垫片Chimp垫片是一种前端开发工具,主要用于解决浏览器兼容性和样式调整的问题。它通过在页面中插入一些特殊的代码,帮助我们更好地控制页面的布局和样式,让页面在不同的浏览器和设备上都能呈现出一
现代前端框架的发展与演进
光影少年
前端框架
现代前端框架的发展与演进是一个非常值得关注的话题,反映了整个前端生态系统的不断演化与技术深度的提升。以下是这一趋势的详细解析:现代前端框架的发展与演进第一阶段:jQuery时代(2006-2013)核心特点:以DOM操作为核心,简化浏览器兼容性问题。代表技术:jQuery、Zepto。局限性:缺乏组件化、状态管理和结构性,项目难以维护。第二阶段:MVVM/MVC框架崛起(2014-2016)核心理
Linux的Initrd机制
被触发
linux
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin
maven本地仓库路径修改
bitcarter
maven
默认maven本地仓库路径:C:\Users\Administrator\.m2
修改maven本地仓库路径方法:
1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml
2.找到
 
XSD和XML中的命名空间
darrenzhu
xml xsd schema namespace 命名空间
http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml
http://blog.csdn.net/wanghuan203/article/details/9203621
http://blog.csdn.net/wanghuan203/article/details/9204337
http://www.cn
Java 求素数运算
周凡杨
java 算法 素数
网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。
第一种:
原理: 6N(+-)1法 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
java 单例模式
g21121
java
想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
Linux下Mysql源码安装
510888780
mysql
1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz
(1)创建mysql的安装目录及数据库存放目录
解压缩下载的源码包,目录结构,特殊指定的目录除外:
32位和64位操作系统
墙头上一根草
32位和64位操作系统
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了
我的spring学习笔记10-轻量级_Spring框架
aijuans
Spring 3
一、问题提问:
→ 请简单介绍一下什么是轻量级?
轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。
 
mongodb 环境搭建及简单CURD
antlove
Web Install curd NoSQL mongo
一 搭建mongodb环境
1. 在mongo官网下载mongodb
2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db"
3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\
数据字典和动态视图
百合不是茶
oracle 数据字典 动态视图 系统和对象权限
数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭 数据字典中包含
数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
数据库为一
多线程编程一般规则
bijian1013
java thread 多线程 java多线程
如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。
不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。
将文件或目录拷贝到另一个Linux系统的命令scp
bijian1013
linux unix scp
一.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径
【持久化框架MyBatis3五】MyBatis3一对多关联查询
bit1129
Mybatis3
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
cookie状态判断引发的查找问题
bitcarter
form cgi
先说一下我们的业务背景:
1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩
2.form中action是一个cgi服务
3.后台cgi服务同时供PC,H5,APP
4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题)
问题:(折腾两天。。。。)
1.PC端cgi服务正常调用,cookie判断没
通过Nginx,Tomcat访问日志(access log)记录请求耗时
ronin47
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间
nginx.conf使用配置方式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
bylijinnan
java
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private stati
看别人的博客,觉得心情很好
Cb123456
博客 心情
以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:
职业规划:
http://www.iteye.com/blogs/subjects/zhiyeguihua
android学习:
1.http://byandby.i
[JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析
comsci
工作流
我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误
在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到
JS常用的事件及方法
cwqcwqmax9
js
事件 描述
onactivate 当对象设置为活动元素时触发。
onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。
onbeforeactivate 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即
正则表达式验证日期格式
dashuaifu
正则表达式 IT其它 java其它
正则表达式验证日期格式
function isDate(d){
var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i);
if(!v) {
this.focus();
return false;
}
}
<input value="2000-8-8" onblu
Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证
dcj3sjt126com
yii
public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation
UITextAttributeTextColor = deprecated in iOS 7.0
dcj3sjt126com
ios
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
判断一个数是质数的几种方法
EmmaZhao
Math python
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
SpringSecurity工作原理小解读
坏我一锅粥
SpringSecurity
SecurityContextPersistenceFilter
ConcurrentSessionFilter
WebAsyncManagerIntegrationFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
Use
JS实现自适应宽度的Tag切换
ini
JavaScript html Web css html5
效果体验:http://hovertree.com/texiao/js/3.htm
该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。
HTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
Hbase Rest API : 数据查询
kane_xie
REST hbase
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
JQuery实现鼠标拖动元素移动位置(源码+注释)
明子健
jquery js 源码 拖动 鼠标
欢迎讨论指正!
print.html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>发票打印</title>
&l
Postgresql 连表更新字段语法 update
qifeifei
PostgreSQL
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.
将redis,memcache结合使用的方案?
tcrct
redis cache
公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi
开发中遇到的诡异的bug
wudixiaotie
bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key