作为一个前端,最烦恼的应该是如何让网页在所有浏览器下都能正常浏览。这是一项不断变化和繁琐的工作,我现在就来总结一下我在工作中遇到的问题和解决的办法。
首先,需要了解浏览器内核不同,导致了网页渲染效果不同。 从网上众多的介绍中,我总结了一下这些要点:
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
你可能感兴趣的:(浏览器兼容)
【前端面试】事件监听机制&React 的事件系统实现
贾明恣
前端 react.js 面试
目的React实现了自己的事件系统,主要是为了解决以下几个问题:跨浏览器兼容性:不同的浏览器在处理DOM事件时有不同的实现,React的事件系统抽象了这些差异,提供了一致的API给开发者使用。性能优化:React可以对事件进行池化(Pooling),这意味着事件对象可以在事件处理过程中被重用,减少了内存分配和垃圾回收的开销。合成事件(SyntheticEvents):React使用合成事件来封装所
overflow-wrap详解
万能螺丝刀1
CSS css
overflow-wrapoverflow-wrap属性在CSS文本中是比较常用的,本部将带你深入理解overflow-wrap属性的各个方面,包括它的语法、取值、作用和浏览器兼容性,最后附上overflow-wrap的实例,希望能够对你有所帮助。overflow-wrap定义和用法overflow-wrap:normal|break-word默认值:normal适用于:所有元素继承性:有动画性:
esbuild中的CSS处理:高效且强大的构建工具
软考鸭
javascript帮助文档 css 前端
在现代前端开发中,构建工具扮演着至关重要的角色,它们帮助我们优化资源、提高加载速度,并确保代码在各种浏览器中的兼容性。esbuild是一款新兴的构建工具,以其出色的性能和丰富的功能受到了开发者的青睐。本文将深入探讨esbuild中的CSS处理能力,展示其如何通过内置的CSSLoader实现高效的CSS打包和优化,以及它如何帮助开发者处理现代CSS特性和浏览器兼容性问题。esbuild的CSSLoa
【HTML】DOCTYPE作用
全宇宙最最帅气的哆啦A梦小怪兽
html 前端
DOCTYPE是documenttype(文档类型)的缩写。是HTML5中一种标准通用标记语言的文档类型声明,告诉浏览器文档的类型,便于解析文档。不同渲染模式会影响浏览器对CSS代码甚至JS脚本的解析。它必须声明在第一行。DOCTYPE不存在或者形式不正确会导致HTML或XHTML文档以混杂模式呈现,就是把如何渲染html页面的权利交给浏览器。有多少浏览器就会有多少种展示方式,因此要提高浏览器兼容
html5在不同浏览器兼容,HTML5浏览器兼容性解决方案
weixin_39732991
html5在不同浏览器兼容
HTML5浏览器兼容性解决方案HTML5新增语义标签,以及如何兼容老版本浏览器。前言HTML5属于上一代HTML的新迭代语言,设计HTML5最主要的目的是为了在移动设备上支持多媒体。例如:video标签和audio及canvas标记。而HTML5在取消了过时的显示效果标记和等同时,也引入了一些新的语义标签,例如:更多的语义标签请参考一、语义标签兼容性1.解决思路主流浏览器都兼容HTML5的新标签。
2024年首发!高级界面控件Kendo UI全新发布2024 Q1
界面开发小八哥
ui 界面控件 kendo ui UI开发
KendoUI是带有jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件,KendoUI可以创建数据丰富的桌面、平板和移动Web应用程序。通过响应式的布局、强大的数据绑定、跨浏览器兼容性和即时使用的主题,KendoUI将开发时间加快了50%。KendoUI2
2024年及以后在您的项目中使用的最佳CSS框架
晓风晓浪
css tensorflow 前端
在过去几年中,CSS已经取得了长足的进步。在过去,您可能会使用CSS来创建依赖于HTML表格和CSS浮动作为其布局系统的简单外观的Web应用程序。而现在,您可以设计复杂的交互式用户界面,具有优雅的设计。尽管CSS变得越来越先进,但为大型Web应用程序从头编写CSS样式可能会耗费时间。这也可能导致样式重复、CSS文件变长、跨浏览器兼容性错误,以及通常更复杂的代码库。为了解决这一挑战,CSS框架应运而
推荐十四款常见的Web前端开发框架
Java学习之平凡之路
资源收集
在做web开发的时候经常会遇到一个问题,那就是,选择什么样的框架来做前端开发。下面封程中把目前常用的一些前端的框架简单的给大家介绍一下.1.BootstrapBoostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。Bootst
[HTML]Web前端开发技术20(HTML5、CSS3、JavaScript )HTML5 基础与CSS3 应用,datetime-local,required,MPEG4——喵喵画网页
猫佛
喵喵画网页 html 前端 html5 javascript css3 计算机学习
希望你开心,希望你健康,希望你幸福,希望你点赞!最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!!喵喵喵,你对我真的很重要!目录前言HTML5新增的表单属性HTML5新增的input类型HTML5表单新增输入类型HTML5视频与音频CSS3基础应用CSS3浏览器兼容性课后练习网页标题:顺序结构的应用网页标题:if..else语句的应用网页标题:switch结构的应用网页标题:顺序
软件测试开发/全日制/测试管理丨Web 兼容性测试
Web兼容性测试是确保一个网站或Web应用在不同的浏览器、操作系统和设备上能够正常运行的测试过程。由于不同的浏览器和设备具有不同的渲染引擎和特性,Web兼容性测试成为确保用户在各种环境中都能获得一致性和优质体验的关键步骤。以下是进行Web兼容性测试时常采用的一些关键方面:1.跨浏览器兼容性测试:确保网站或应用在主流浏览器(如Chrome、Firefox、Safari、Edge、InternetEx
软件测试开发/全日制/测试管理丨用户端 Web 自动化测试
随着Web应用的普及和不断发展,用户端Web自动化测试成为确保Web应用质量的重要手段。这种测试方法不仅提高了测试效率,也帮助团队及时发现和解决潜在问题,确保用户体验的连贯性和稳定性。工具选择用户端Web自动化测试的第一步是选择适当的工具。Selenium是一个广泛使用的工具,支持多种编程语言,如Java、Python、C#等,而且与各种浏览器兼容。其他工具如WebDriverIO、Protrac
js库和js框架你还分不清吗?一句话就讲明白了。
贝格前端工场
javascript 开发语言 ecmascript
一、JS库JS库(JavaScriptLibrary)是一组封装了常用功能和工具的JavaScript代码集合。它们提供了一系列的函数和方法,使得开发者能够更便捷地进行常见的操作和处理。JS库通常是轻量级的,只关注某个特定的功能或问题领域。一些常见的JS库包括:jQuery:是最流行的JS库之一,提供了简洁的API,用于处理DOM操作、事件处理、动画效果、AJAX请求等。它简化了跨浏览器兼容性问题
【兼容性】js 浏览器兼容问题处理方式
编程轨迹_
javascript js兼容性 javascript 浏览器 IE 火狐
⭐️本文首发自前端修罗场(点击即可加入),一个专注Web技术、答疑解惑、面试辅导、职业发展的社区。现在加入,即可参与打卡挑战,和一群人一起努力。挑战成功即可获取一次免费的模拟面试机会,进而评估知识点的掌握程度,获得更全面的学习指导意见,不走弯路,不吃亏!参考:http://www.frontopen.com/2552.html使用CSS来修正一切:20+常见错误和修复http://www.noup
浏览器兼容性问题及解决方案大汇总
遇· ฅ
css
所谓浏览器兼容性问题:是指不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的效果。解决方法前端开发疆场需要检查浏览器的兼容性,这里推荐(CanIUse)这个查询网址。是一个针对前端开发人员制定的一个查询CSS、JS、HTML5、SVG,可以很好的保证网页在浏览器中的兼容性。CSS兼容问题1、不同浏览器的标签默认的内外边框不同。解决方案*{margin:0;padding:0;}/***
vue + video.js实现视频列表页(多个视频)
River_tong
vue+video.js实现视频列表页vue项目中做一个视频列表页,本来用原生video标签来实现,由于考虑到手机浏览器兼容问题,找了很多插件,最后决定用video.js这个插件来实现。Video.js是一个有着HTML5背景的网络视频播放器。它同时支持HTM5和Flash视频,简单来说就是HTMl5和Flash视频播放器安装video.js$npminstallvideo.js在main.js中
前端笔试题涉及html、css、js、Vue 等
脏十三i
综合题你觉得前端工程师的价值体现在哪?为简化用户使用提供技术支持(交互部分)为多个浏览器兼容性提供支持为提高用户浏览速度(浏览器性能)提供支持为跨平台或者其他基于webkit或者其他渲染引擎的应用提供支持为展示数据提供支持(数据接口)什么是w3c标准,谈谈对w3c的理解?答:如果从WEB技术角度,可以分为三个方面的标准:结构、表现、行为。结构主要指(X)HTML标准,包括各种标签的名字、属性、语义
HTML5原生的Drag和Drop,H5原生拖放(Drag and Drop)demo以及浏览器兼容性处理
晴-LQ
H5原生拖放(DragandDrop)demo以及浏览器兼容性处理这篇文章发布于2020/08/22,归类于JavaScript标签:js拖拽,原生js拖放,js拖放,js拖放浏览器兼容性,HTML5拖放,dragstart,drop一般在网页中,如果需要实现拖放,首先要有两个元素可拖动的元素,元素draggable="true"属性就是可拖放,如果设置为false就是不可拖放可以放置的区域,注意
css 居中布局的几种常用方式
cesiuming
水平居中1、第一种方案:父元素设置:text-align:center;子元素设置:display:inline-block;优点:浏览器兼容性比较好缺点:text-align属性具有继承性,导致子级元素的文本也是居中显示的,解决方案在子级元素中增加text-align:lfet;子级元素.parent{width:100%;height:300px;background:#ccc;/**cent
高级web前端开发工程师的岗位职责最新(合集)
matlab@com
前端
高级web前端开发工程师的岗位职责最新1职责:1.主导公司前端开发的技术方向,指导其他前端开发人员工作2.负责产品的Web前端开发及用户交互体验设计;3.基于HTML、CSS、JavaScript标准进行页面制作,编写界面组件;4.协同后台开发工程师,完成Web系统开发任务;5.优化代码并保持良好浏览器兼容性(IE10+);6.页面优化和效率调优;岗位要求:1.本科及以上学历,计算机、通信相关专业
浏览器兼容性总结
飘曳_87de
浏览器的兼容性问题,通常是因为不同的浏览器对同一段代码有不同的解析,造成页面显示不统一的情况。1.最主要也是最常见的,就是浏览器对标签的默认样式的解析不一致,所以我们要统一,就要进行样式重置,最简单的初始化方法是*{margin:0;padding:0;}2.上下margin重合问题,相邻的两个divmargin-leftmargin-right不会重合,但相邻的margin-topmargin-
BFC与浏览器兼容
我不信这样也重名
BFC一、BFC是什么BFC(Blockformattingcontext)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-levelbox参与,它规定了内部的Block-levelBox如何布局,并且与这个区域外部毫不相干。二、如何形成BFCfloat属性不设为noneposition属性设为absolute或fixeddisplay设为inline-block、table-
【面试总结系列】在开发 PC 端项目时,需要考虑哪些主流设备浏览器兼容性的问题?
八了个戒
前端面试 问题解决 前端 内核 css html javascript
一、问题描述在开发PC端项目时,需要考虑哪些兼容性的问题?二、答案详解首先,为什么会出现浏览器兼容问题?各大厂商出于自身利益考虑而设置的种种技术壁垒,都让CSS应用起来比想象得要麻烦;由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也很难重和,这就为各种莫名其妙的Bug(代码错误)提供了温床。介绍一下目前最流行的五大浏览器以及五大内核浏览器:IE浏览器Firefox(火狐)浏览器Chrom
css 上下布局 flex,Css Flex布局
SeaTable
css 上下布局 flex
Flex布局是Css3中新加入的额外布局系统。传统布局基于盒模型,依赖“display”、“position”、“float”属性,对于特殊布局非常不便。因此2009年,W3C提出新的布局方案-Flex布局,但由于浏览器兼容问题,Flex布局并没有大范围铺开。实现Flex布局的条件1.必须有一个父级容器作为Flex容器(作为容器)·定义一个Flex容器.box{display:flex;}2.Fl
未来软件测试行业发展的10大趋势,&就业钱景
不是Y君
前言技术在不断发展,几年前的技术到现在可能已经落伍了。特别是在软件开发和测试领域在不断创新,并可能将人工智能、机器学习、大数据等新兴技术结合起来的当下。无论是selenium测试自动化、浏览器兼容性测试,还是任何其他形式的测试方法,每一种测试方法都在不断地更新,以交付更好的产品。如果你是一名软件测试人员,那么了解业内顶尖的软件测试趋势是非常有必要的。为此我整理了测试未来行业发展的十大趋势,仅供大家
Vue相关
kevin_3
Vue.js源码的入口主要做了些什么处理?Vue.js中的数据劫持是怎么实现的?浏览器兼容性呢?Vue.js中的依赖收集是怎么处理的?和闭包有什么关联吗?Vue.js中的模板解析需要经历哪几个阶段?Vue.js中的虚拟节点优势是什么?Vue.js中的DIFF算法是怎么处理的?Vue.js中DIFF算法的时间复杂度是多少?为什么?Vue.js中computed/watch实现的原理是什么?Vue.j
browserslist 目标浏览器配置
Ashley的成长之路
前端 Vue
browserslist的作用:可以根据提供的目标浏览器的环境来智能添加css前缀,达到兼容旧版本浏览器的目的;这样避免了一股脑的添加,也避免冗余的兼容代码,以提高代码的编译质量。//packpackage.json页{"browserslist":[//注意是一个数组">1%",//全球超过1%人使用的浏览器"last2versions",//所有浏览器兼容到最后两个版本根据CanIUse.co
CSS探索浏览器兼容性
hzttaoh
css 前端
学习如何探索浏览器的兼容性对于编写跨浏览器兼容的CSS代码非常重要。以下是一些学习CSS兼容性的方法:MDN文档:Mozilla开发者网络(MDN)提供了广泛而详细的CSS文档,其中包含有关CSS属性、选择器和功能的信息。在MDN上查阅特定属性或功能的文档时,通常会提供关于不同浏览器的兼容性信息。CanIUse:CanIUse(https://caniuse.com/)是一个非常有用的网站,它提供
Vue3笔记
nknmn_
javascript webpack 前端
一.前端工程化webpack代码压缩、解决js的浏览器兼容性问题、性能优化webpack.config.js文件下:mode节点:1.development开发时用,不代码压缩和性能优化,打包速度块2.production发布时用,代码压缩和性能优化,打包速度慢webpack.config.js文件是webpack的配置文件,打包前先读取这个配置文件,从而基于给定的配置,对项目打包默认的打包入口文
React面试题
吃肉肉不吃肉肉
1React中有三种构建组件的方式React.createClass()、ES6class和无状态函数。2描述事件在React中的处理方式为了解决跨浏览器兼容性问题,您的React中的事件处理程序将传递SyntheticEvent的实例,它是React的浏览器本机事件的跨浏览器包装器。这些SyntheticEvent与您习惯的原生事件具有相同的接口,除了它们在所有浏览器中都兼容。有趣的是,Reac
webpack底层原理和使用方法
贫僧法号依平
webpack 前端 node.js 前端框架
文章目录1.webpack的定义2.webpack的背景3.webpack的核心思想3.webpack的作用4.webpack的优势5.webpack的劣势6.对比其他打包工具7.webpack的浏览器兼容性8.webpack的运行环境9.webpack的打包过程9.1初始化参数阶段9.1.1配置参数9.1.2实例化插件9.1.3实例化编译对象9.1.4加载插件9.1.5entry-option9
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