⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术、答疑解惑、面试辅导、职业发展的社区。现在加入,即可参与打卡挑战,和一群人一起努力。挑战成功即可获取一次免费的模拟面试机会
,进而评估知识点的掌握程度,获得更全面的学习指导意见,不走弯路,不吃亏!
参考: http://www.frontopen.com/2552.html 使用CSS来修正一切: 20 +常见错误和修复http://www.noupe.com/design/using-css-to-fix-anything-20-common-bugs-and-fixes.html
【总结】IE和Firefox的Javascript兼容性总结
http://www.cnblogs.com/wiky/archive/2010/01/09/IE-and-Firefox-Javascript-compatibility.html
http://www.jb51.net/article/21483.htm Javascript 多浏览器兼容性问题及解决方案
一、
(1)getElementByid()与eval()
问题描述:
在IE中,可以使用eval(“idName”)或getElementById(“idName”)来取得id为idName的HTML对象;
Firefox下只能使用getElementById(“idName”)来取得id为idName的HTML对象;
兼容处理:
统一使用getElementByid();
(2)const声明
问题描述:
在 IE 中不能使用 const 关键字声明变量;
兼容处理:
不使用 const ,以 var 代替。
(3)CSS的"float"属性访问
问题描述:
Javascript访问一个给定CSS 值的最基本句法是:object.style.property,但部分CSS属性跟Javascript中的保留字命名相同,如"float",“for”,"class"等,不同浏览器写法不同。
在IE中这样写:
document.getElementById(“header”).style.styleFloat = “left”;
在Firefox中这样写:
document.getElementById(“header”).style.cssFloat = “left”;
兼容处理:
在写之前加一个判断,判断浏览器是否是IE:
if(document.all){
document.getElementById("header").style.styleFloat = "left";
}
else{
document.getElementById("header").style.cssFloat = "left";
}
(4)访问标签中的"for"
问题描述:
和"float"属性一样,同样需要使用不现的句法区分来访问标签中的"for"
在IE中这样写:
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("htmlFor");
在Firefox中这样写:
var myObject = document.getElementById("myLabel");
var myAttribute = myObject.getAttribute("for");
兼容处理:
解决的方法也是先 判断浏览器类型。
(5)访问和设置class属性
问题描述:
同样由于class是Javascript保留字的原因,这两种浏览器使用不同的 JavaScript 方法来获取这个属性。
IE8.0之前的所有IE版本的写法:
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("className");
适用于IE8.0 以及 firefox的写法:
var myObject = document.getElementById("header");
var myAttribute = myObject.getAttribute("class");
另外,在使用setAttribute()设置Class属性的时候,两种浏览器也存在同样的差异。
setAttribute("className",value);
这种写法适用于IE8.0之前的所有IE版本,注意:IE8.0也不支持"className"属性了。 setAttribute(“class”,value);适用于IE8.0 以及 firefox。
兼容处理:
方法一,两种都写上:
var myObject = document.getElementById("header");
myObject.setAttribute("class","classValue");
myObject.setAttribute("className","classValue");
//设置header的class为classValue
方法二,IE和FF都支持object.className,所以可以这样写:
var myObject = document.getElementById("header");
myObject.className="classValue";//设置header的class为classValue
方法三,先判断浏览器类型,再根据浏览器类型采用对应的写法。
二、DOM方法及对象引用
getElementById
问题描述:
在Firefox中,按钮没反应,在IE中,就可以,因为对于IE来说,一个HTML 元素的 ID 可以直接在脚本中当作变量名来使用,而Firefox中不可以。
兼容处理:
尽量采用W3C DOM 的写法,访问对象的时候,用document.getElementById(“id”) 以ID来访问对象,且一个ID在页面中必须是唯一的,同样在以标签名来访问对象的时候,用document.getElementsByTagName(“div”)[0] 。该方式得到较多浏览器的支持。
集合类对象访问
问题描述:
IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象
document.write(document.forms("formName").src);
//该写法在IE下能访问到Form对象的scrc属性
兼容处理:
将document.forms("formName")改为 document.forms["formName"]。统一使用[]获取集合类对象。
frame的引用
问题描述:
IE可以通过id或者name访问这个frame对应的window对象,
而Firefox只可以通过name来访问这个frame对应的window对象。
例如如果上述frame标签写在最上层的window里面的htm里面,那么可以这样访问: IE: window.top.frameId或者window.top.frameName来访问这个window对象;
Firefox:只能这样window.top.frameName来访问这个window对象。
兼容处理:
使用frame的name来访问frame对象,另外,在IE和Firefox中都可以使用window.document.getElementById(”frameId”)来访问这个frame对象。
parentElement
问题描述:
IE中支持使用parentElement和parentNode获取父节点。而Firefox只可以使用parentNode。
兼容处理:
因为firefox与IE都支持DOM,因此统一使用parentNode来访问父节点。
table操作
问题描述:
IE下table中无论是用innerHTML还是appendChild插入都没有效果,而其他浏览器却显示正常。
兼容处理:
将加到table的 元素中,如下面所示:
var row = document.createElement("tr");
var cell = document.createElement("td");
var cell_text = document.createTextNode("插入的内容");
cell.appendChild(cell_text);
row.appendChild(cell);
document.getElementsByTagName("tbody")[0].appendChild(row);
移除节点removeNode()和removeChild()
问题描述:
appendNode在IE和Firefox下都能正常使用,但是removeNode只能在IE下用。
removeNode方法的功能是删除一个节点,语法为node.removeNode(false)或者node.removeNode(true),返回值是被删除的节点。
removeNode(false)表示仅仅删除指定节点,然后这个节点的原孩子节点提升为原双亲节点的孩子节点。
removeNode(true)表示删除指定节点及其所有下属节点。被删除的节点成为了孤立节点,不再具有有孩子节点和双亲节点。
兼容处理:
Firefox中节点没有removeNode方法,只能用removeChild方法代替,先回到父节点,在从父节点上移除要移除的节点:
node.parentNode.removeChild(node); // 为了在ie和firefox下都能正常使用,取上一层的父结点,然后remove。
childNodes获取的节点
问题描述:
childNodes的下标的含义在IE和Firefox中不同
兼容处理:
方法一,获取子节点时,可以通过node.getElementsByTagName()来回避这个问题。但是 getElementsByTagName对复杂的DOM结构遍历明显不如用childNodes,因为childNodes能更好的处理DOM的层次结构。
方法二,在实际运用中,Firefox在遍历子节点时,不妨在for循环里加上:
if(childNode.nodeName=="#text") continue;//或者使用nodeType == 1。
Firefox不能对innerText支持
问题描述:
Firefox不支持innerText,它支持textContent来实现innerText,不过textContent没有像innerText一样考虑元素的display方式,所以不完全与IE兼容。如果不用textContent,字符串里面不包含HTML代码也可以用innerHTML代替。
兼容处理:
通过判断浏览器类型来兼容:
if(document.all){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = "my text";
}
三、事件处理
window.event
问题描述:
function et()
{
alert(event);//IE: [object]
}
以上代码在IE运行的结果是[object],而在Firefox无法运行。
因为在IE中event作为window对象的一个属性可以直接使用,但是在Firefox中却使用了W3C的模型,它是通过传参的方法来传播事件的,也就是说你需要为你的函数提供一个事件响应的接口。
兼容处理:
添加对event判断,根据浏览器的不同来得到正确的event:
function et()
{
evt=evt?evt:(window.event?window.event:null);
//兼容IE和Firefox
alert(evt);
}
键盘值的取得
问题描述:
IE和Firefox获取键盘值的方法不同,可以理解,Firefox下的event.which与IE下的event.keyCode相当。
兼容处理:
function myKeyPress(evt){
//兼容IE和Firefox获得keyBoardEvent对象
evt = (evt) ? evt : ((window.event) ? window.event : "")
//兼容IE和Firefox获得keyBoardEvent对象的键值
var key = evt.keyCode?evt.keyCode:evt.which;
if(evt.ctrlKey && (key == 13 || key == 10)){
//同时按下了Ctrl和回车键
//do something;
}
}
事件源的获取
问题描述:
在使用事件委托的时候,通过事件源获取来判断事件到底来自哪个元素,
但是,
在IE下,event对象有srcElement属性,但是没有target属性;
Firefox下,even对象有target属性,但是没有srcElement属性。
兼容处理:
ele=function(evt){ //捕获当前事件作用的对象
evt=evt||window.event;
return
(obj=event.srcElement?event.srcElement:event.target;);
}
事件监听
问题描述:
在事件监听处理方面:
IE提供了attachEvent和detachEvent两个接口,
而Firefox提供的是addEventListener和removeEventListener。
兼容处理:
最简单的兼容性处理就是封装这两套接口:
function addEvent ( elem, eventName, handler ) {
if ( elem. attachEvent) {
elem. attachEvent ( "on" + eventName, function ( ) {
handler . call ( elem) } ) ;
} else if ( elem. addEventListener) {
elem. addEventListener ( eventName, handler, false ) ;
}
}
function removeEvent ( elem, eventName, handler ) {
if ( elem. detachEvent) {
elem. detachEvent ( "on" + eventName, function ( ) {
handler . call ( elem) } ) ;
} else if ( elem. removeEventListener) {
elem. removeEventListener ( eventName, handler, false ) ;
}
}
需要特别注意,Firefox下,事件处理函数中的this指向被监听元素本身,而在IE下则不然,可使用回调函数call,让当前上下文指向监听的元素。
鼠标位置
问题描述:
IE下,even对象有x,y属性,但是没有pageX,pageY属性;
Firefox下,even对象有pageX,pageY属性,但是没有x,y属性。
兼容处理:
使用 mX(mX = event.x ? event.x : event.pageX;)
来代替IE下的event.x或者Firefox下的event.pageX。复杂点还要考虑绝对位置。
function getAbsPoint ( e ) {
var x = e. offsetLeft, y = e. offsetTop;
while ( e = e. offsetParent) {
x += e. offsetLeft;
y += e. offsetTop;
}
alert ( "x:" + x + "," + "y:" + y) ;
}
6、window.location.href 问题
问题描述:
IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location。
兼容处理:
使用 window.location 来代替 window.location.href。当然也可以考虑使用 location.replace()方法。
7、事件委托方法
问题描述:
IE下,使用 document.body.onload = inject; 其中function inject()在这之前已被实现;
在Firefox下,使用 document.body.onload = inject();
兼容处理:
统一使用 document.body.οnlοad=new Function(‘inject()’);
或者 document.body.onload = function(){/* 这里是代码 */}
四、其他差异的兼容处理
XMLHttpRequest
问题描述:
new ActiveXObject("Microsoft.XMLHTTP");只在IE中起作用,Firefox不支持,但支持XMLHttpRequest。
兼容处理:
function createXHR ( ) {
var xhr= null ;
if ( window. XMLHttpRequest) {
xhr= new ActiveXObject ( "Msxml2.XMLHTTP" ) ;
} else {
try {
xhr= new ActiveXObject ( "Microsoft.XMLHTTP" ) ;
}
catch ( ) {
xhr= null ;
}
}
if ( ! xhr) return ;
return xhr;
}
模态和非模态窗口
问题描述:
IE中可以通过showModalDialog和showModelessDialog打开模态和非模态窗口,但是Firefox不支持。
兼容处理:
直接使用window.open(pageURL,name,parameters)方式打开新窗口。 如果需要传递参数,可以使用frame或者iframe。
input.type属性问题
IE下 input.type属性为只读,但是Firefox下可以修改
对select元素的option操作
设置options,IE和Firefox写法不同:
Firefox:可直接设置:option.text = 'foooooooo';
IE:只能设置:option.innerHTML = 'fooooooo';
删除一个select的option的方法:
Firefox:可以
select.options.remove(selectedIndex);
IE7:可以用
select.options[i] = null;
IE6:需要写
select.options[i].outerHTML = null;
img 对象 alt 和 title 的解析
问题描述:
img对象有alt和title两个属性,区别在于,alt:当照片不存在或者load错误时的提示。
title:照片的tip说明, 在IE中如果没有定义title,alt也可以作为img的tip使用,但是在Firefox中,两者完全按照标准中的定义使用
兼容处理:
最好将alt和title对象都写全,保证在各种浏览器中都能正常使用 。
img 的 src 刷新问题
问题描述:
< img id = " pic" onclick = " this . src= 'a.jpg' " src = " aa.jpg" style = " cursor : pointer" />
在IE 下,这段代码可以用来刷新图片,但在FireFox下不行。主要是缓存问题。
兼容处理:
在地址后面加个随机数就解决了:
< img id = " pic" onclick = " javascript : this . src= this . src+ '?'
+ Math. random ( ) " src = " a.jpg" style = " cursor : pointer" />
你可能感兴趣的:(javascript,js兼容性,javascript,浏览器,IE,火狐)
掌握 Spring AOP(面向切面编程)
随风九天
spring Spring AOP 切面
一、引言1.什么是面向切面编程(AOP)AOP的定义和核心概念面向切面编程(Aspect-OrientedProgramming,AOP)是一种编程范式,旨在通过将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来,提高代码的模块化程度。AOP允许开发者在不修改业务逻辑代码的情况下,动态地添加这些横切关注点。AOP的应用场景AOP常用于处理以下场景:日志记录:记录方法调用的时间、参数和返回值
03-1.python爬虫-爬虫简介
执着的小火车
python入门到项目实践 爬虫 python http
03-1.python爬虫-爬虫简介简介Python爬虫是一种使用Python编程语言编写的程序,用于自动从互联网上获取网页数据。它可以模拟人类浏览器的行为,发送HTTP请求到目标网站,获取网页的HTML内容,然后通过解析HTML提取所需的数据,如文本、图片链接、表格数据等。爬虫的应用广泛,比如在数据挖掘领域,可收集大量数据用于分析趋势和模式;在信息聚合方面,能将不同网站的特定信息汇总到一处;还可
03-2.python爬虫-Python爬虫基础(一)
执着的小火车
python入门到项目实践 爬虫 python 开发语言
HTTP基本原理HTTP(HyperTextTransferProtocol),即超文本传输协议,是互联网通信的关键所在。它作为应用层协议,构建于可靠的TCP协议之上,保障了数据传输的稳定与可靠,犹如网络世界的“交通规则”,规范着客户端与服务器之间的数据往来。HTTP的请求响应过程是其核心机制。当用户在浏览器中输入一个URL并按下回车键,浏览器就会作为客户端向服务器发送HTTP请求。请求由请求行、
SpringDataJPA 开启批量插入及批量插入不生效解决
AK_GCC
spring hibernate java
开启配置#统计生成SQL执行情况spring.jpa.properties.hibernate.generate_statistics=true#开启批量插入spring.jpa.properties.hibernate.jdbc.batch_size=500spring.jpa.properties.hibernate.order_inserts=true代码示例org.springframew
nodejs原生http简单搭建web服务器
wcgdecsdn
服务器 node.js http
原生搭建主要作为了解,真正搭建可以使用一些封装的模块express等简单搭建consthttp=require('http')constserve=http.createServer()serve.on('request',(request,response)=>{//防止乱码()response.setHeader('Content-Type','text/html;charset=utf-8'
Java: 基于Redis Geo实现的坐标距离计算
東辰
Java redis java
Redis在3.2版本之后加入了Geo支持,我们可以据此实现不同坐标点的距离计算、排序等功能,从而实现类似附近的人、附近的餐厅等功能,本文主要简介一下使用方法,没对原理进行深究,感兴趣的同学可自行研究一、添加Redis依赖redis.clientsjedis3.5.2二、通过geoadd初始化坐标信息Jedisjedis=newJedis("127.0.0.1");Stringkey="compa
关于C/S架构和B/S架构
是栗子yaya
学习笔记 数据库
C/S结构:CS架构即客户机和服务器(Client/Server)结构,是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请
C/S架构与B/S架构
嗯嗯=
架构
一.C/S架构与B/S架构的简述1.1什么是C./S架构C/S架构(Client/ServerArchitecture)是一种软件系统的基本架构模式,客户端负责用户界面和业务逻辑,服务器负责数据存储和处理。C/S架构是一个分布式的计算架构,客户端通过网络连接与服务器通信,完成任务。C/S架构的优点是数据处理效率高,实现灵活,但缺点是维护和安全方面的要求较高,且需要长期维护客户端和服务器。1.2什么
ESP32-C3模组在跑HTTP官方例程时遇到的问题(1)
蓝天居士
ESP32-C3 ESP-IDF ESP32 http
这里先说明一下,本文实际上应该放在后边,只是这个错误比较突出,不是一般网上能够找到答案的,因此优先记录下来。笔者在使用乐鑫官方的HTTP通信例程“esp_http_client”工程时,踩了4个坑,这里先讲最后一个。由于主代码main/esp_http_client.c中的代码较长,总共将近1000行,里边罗列了各种http的通信情况。但笔者并不需要那么多,只需要其中一种即可。因此,在这里,笔者只
Redis四种模式在Spring Boot框架下的配置
阿乾之铭
Redis redis
1.单机模式application.properties配置:spring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.password=yourpasswordspring.redis.host:该配置指定Redis服务器的主机地址。在单机模式下,通常是本地Redis实例(127.0.0.1)。spring.redis.port:
JS - 手写 instanceof 和 new 关键字
DavidZ_13
手写实现代码 javascript 前端 node.js 经验分享 笔记 其他 web
目录instanceof解释手写实现new关键字解释手写实现instanceof解释instanceof是JavaScript中的运算符,用于检查一个对象是否是另一个对象的实例,其实现原理如下:当使用instanceof运算符时,会调用对象的[[Symbol.hasInstance]]方法,该方法在对象的原型链上递归查找,判断目标对象是否为指定类的实例,如果在原型链中找到指定类的原型对象,则返回t
C/S、B/S架构模式的三层结构特点分析
爱学习的王二胖
物联网
C/S架构和B/S架构:C/S(Client/Server)结构分为客户端和服务端两部分。服务端存储数据库内容,并在客户端上安装相应软件。C/S结构按照架构分为双层结构和三层结构。双层结构中的表示层和业务逻辑层部署在客户端,主要提供用户界面,接受用户提交的请求,并将用户请求发送至服务端,申请数据库服务。数据层则部署在服务端,负责数据库的业务处理,包括查询数据库、排序、索引等操作,对数据进行处理后将
jwt权限验证原理
深圳卢先生
数据安全 开发语言 java
1.JWT,全称是JsonWebToken,是一种JSON风格的轻量级的授权和身份认证规范,可实现无状态、分布式的Web应用授权!2.JWT由三部分组成:头部(Header):通常包含令牌的类型(即JWT)和加密算法(如HMACSHA256或RSA)。例如:{"alg":"HS256","typ":"JWT"}载荷(Payload):包含要传递的声明(Claims)。声明总共可以包括如下七项,但是
jQuery可选择日期范围的日期选择器插件
�时过境迁,物是人非
jquery 前端 javascript
jQueryDateRangePicker是一款允许用户选择一个日期时间范围的jQuery日期选择器插件。整个日期选择器插件使用CSS来渲染样式,可以非常容易的使用CSS来定制它的皮肤。它的兼容性非常好,支持IE6+的IE浏览器。预览下载该日期选择器的特点有:支持IE6+,Firefox,Chrome,Safari和其他标准的HTML5浏览器。支持多种语言。使用CSS来渲染样式。容易使用和定制。支
第二十九章: 使用 Docker BuildX 构建多架构 Docker 镜像
半部论语
Docker 入门教程 docker 架构 容器
使用DockerBuildX构建多架构Docker镜像目标掌握安装DockerBuildx插件与启用Buildx构建器构建多架构平台验证镜像兼容性以及发布和分发Buildx是什么Buildx是一个由Docker社区开发的工具,用于构建和管理容器镜像。它提供了一种更高级的构建方式,支持多阶段构建、多平台构建、并行构建等功能,使得容器镜像的构建更加灵活高效。Buildx在DockerCLI的基础上扩展
【SpringAop实现切片注解】
壹佰大多
java android 数据库
文章目录AOP的目的AOP代码实现导包:aop实现注解实现异步监听AOP的目的SpringAOP(Aspect-OrientedProgramming)是Spring框架中的一项功能,旨在通过切面(Aspect)将横切关注点(Cross-CuttingConcerns)与业务逻辑解耦,从而使代码更加模块化和易维护。以下是SpringAOP的主要目的和应用场景:解耦横切关注点横切关注点是指多个模块中
web api 与html 部署,详解.net core webapi 前后端开发分离后的配置和部署
万小柯要努力学习
web api 与html 部署
背景:现在越来越多的企业都采用了在开发上前后端分离,前后端开发上的分离有很多种,那么今天,我来分享一下项目中得的前后端分离。B/SSaas项目:(这个项目可以理解成个人中心,当然不止这么点功能)前端:node.js+vue后端:.netcorewebapi前端安装node.js跟创建vue项目这些不是这篇文章的重点,重点在于项目完成后的部署。.netcorewebapi创建后,默认就创建了一个ww
自动化测试-短信验证码处理
weixin_30719711
数据库 测试 c/c++
之前接触的的验证码都是图形验证码,可以借助图片识别来实现,不过识别率不太高后又研究绕过验证码实现登录。最近有遇到短信验证码的问题,网上看了有各种处理方法。1、cookie登录自己先尝试了,使用cookie登录的方法,具体详见代码1、获取cookie#FileName:VerifyCodeLogin.py#Author:Adil#DateTime:2018/4/913:09#SoftWare:PyC
Node.js多线程:性能提升的关键
Node.js扩展:你需要了解的多线程原文链接:https://dev.to/leapcell/scaling-nodejs-multi-threading-you-need-to-know-2nhi作者:Leapcell译者:倔强青铜三前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢
深度学习-笔记1
深度学习神经网络
刚开始接触深度学习相关内容,在这儿做一个笔记:网址:https://gitee.com/paddlepaddle/PaddleNLPpaddle-nlp是一个自然语言处理NLP方面的工具包(代码库)ERNIEERNIE是百度基于BERT改进的预训练大模型,结合了Transformer架构和知识增强机制。整体上可以分为预训练模型层和任务适配层,预训练模型层负责学习通用的语言知识和语义表示,任务适配层
[JS+CSS+HTML]实现图片拖拽放大缩小功能
神似彭于晏的男人
前端开发功能库 css html 前端
实现效果:JS(核心代码)1.定义全局缩放值letscale=1;2.获取img标签以及盒子的实例letscale=1;//+++++++++++constimgBox=document.getElementById("imgBox");constimg=document.getElementById("img");3.实现图片的缩放效果//缩放效果(wheel--鼠标滚轮事件)img.addEv
私有化一键部署整体方案
维搭小刘
架构 运维
背景我们的客户主要是国企、央企或者科技公司,绝大多数情况下,都是需要将星云平台进行私有化部署。此前,在星云平台整体架构一文中,我详细介绍了平台是基于微服务架构设计的,这种架构带来了许多灵活性和扩展性优势,但也给私有化部署带来了不小的挑战。尤其是在私有化部署的过程中,如何确保各个服务版本的兼容性、如何确保不同服务之间的配置和代码的一致性,成为了必须解决的核心问题。为了应对这些挑战,我们需要实现清晰的
Element Plus上传图片前,对图片进行压缩
hongkid
vue.js javascript ecmascript
在使用ElementPlus(一个基于Vue3的现代组件库)进行文件上传时,你可能希望在上传图片之前对其进行压缩以减少文件大小,从而提高上传速度和节省存储空间。为了实现这一功能,你可以结合使用JavaScript库来处理图片的压缩。下面是一个简单的示例,展示如何在ElementPlus中使用compressorjs进行图片压缩:安装必要的依赖:首先需要安装compressorjs,可以通过npm或
vue中的el是指什么
是小傲雨呀^_^
vue.js 前端 javascript
简介:在Vue.js中,el指的是Vue实例的挂载元素。具体来说,el是一个选项,用于指定Vue实例应该挂载到哪个DOM元素上。通过这个选项,Vue可以知道应该从哪个元素开始进行模板编译和渲染。它可以是一个CSS选择器字符串,也可以是一个直接的DOM元素。el的定义:el是Vue实例的一个选项,用于指定Vue实例应该挂载到哪个DOM元素上。用途:指定挂载点:el选项的主要作用是指定Vue实例的挂载
Vue3配置vite.config.js代理解决跨域问题
码喽的自我修养
vue2/3 从基础到起飞 前端工程搭建 javascript 开发语言 ecmascript vue.js 前端 nginx
前言:当浏览器发出一个请求时,只要请求URL的协议、域名、端口三者之间任意一个与当前页面URL不同,就称为跨域。跨域一般出现在开发阶段,由于线上环境前端代码被打包成了静态资源,因而不会出现跨域问题,这篇文章主要给大家介绍了关于Vue3配置vite.config.js解决跨域问题的相关资料,创作不易,如果能帮助到带大家,欢迎收藏+关注哦问题再现后台报错:AccesstoXMLHttpRequesta
软件测试面试笔试题-选择题(物联网)
测试界媛姐
自动化测试 软件测试面试 软件测试 面试 职场和发展 软件测试
1.在软件生命周期中,测试人员从那个阶段开始参与更有利于软件项目的成功()a)需求分析阶段b)设计阶段c)编码阶段d)系统测试阶段2.在Bugzilla缺陷跟踪系统中,下列选项中属于缺陷状态的是()(选两项)a)newb)fixedclaterd)verified3.在Bugzilla中,如果一个缺陷的处理状态被开发人员置为Wontfix,则表明()a)这个Bug中描述的不是问题d)这个Bug中描
Python之解析 Windows 下的 .ini 文件
Hi Man
Python python windows 开发语言
在Python中解析Windows下的.ini文件,可以使用内置的configparser模块。configparser专门用于处理.ini格式的配置文件,支持分节、键值对、注释等特性。以下是一个完整的示例,展示如何解析和操作.ini文件。1..ini文件示例假设你有一个名为config.ini的文件,内容如下:[DEFAULT]sourcepatch=lijiedantargetpath=/ho
node笔记_koa框架的路由
yma16
JavaScript专栏 nodejs 专栏 笔记 javascript node.js 前端
文章目录⭐前言⭐koa原生路由写法⭐引入koa-router安装koa-router动态读取路径文件作为路由⭐结束⭐前言大家好,我是yma16,本文介绍koa框架的路由。往期文章node_windows环境变量配置node_npm发布包linux_配置nodenode_nvm安装配置node笔记_http服务搭建(渲染html、json)node笔记_读文件node笔记_写文件
情人节用js写一个爱心代码
金刚廉神兽
javascript 前端 html html5 开发语言
情人节快乐!你可以用JavaScript写一个简单的爱心代码。以下是一个示例代码,使用HTML5canvas绘制一个爱心图形:LoveHeartvarcanvas=document.getElementById("loveHeart");varctx=canvas.getCon
2020 年 12 月大学英语四级考试真题(第 2 套)——纯享题目版
fo安方
英语—四级CET4 四级 英语 学习
个人主页:fo安方的博客✨个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIECloudComputing、CCIESecurity、PMP、CISP、RHCE、CCNPRS、PEST3等证书。兴趣爱好:b站天天刷,题目常常看,运动偶尔做,学习需劳心,寻觅些乐趣。欢迎大家:这里是CSDN,是我记录我的日常学习,偶尔生活的地方,喜欢的话请一键三连,有问题请评论区讨论。导读页:这是
用MiddleGenIDE工具生成hibernate的POJO(根据数据表生成POJO类)
AdyZhang
POJO eclipse Hibernate MiddleGenIDE
推荐:MiddlegenIDE插件, 是一个Eclipse 插件. 用它可以直接连接到数据库, 根据表按照一定的HIBERNATE规则作出BEAN和对应的XML ,用完后你可以手动删除它加载的JAR包和XML文件! 今天开始试着使用
.9.png
Cb123456
android
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png
智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。
我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边
算法的效率
天子之骄
算法效率 复杂度 最坏情况运行时间 大O阶 平均情况运行时间
算法的效率
效率是速度和空间消耗的度量。集中考虑程序的速度,也称运行时间或执行时间,用复杂度的阶(O)这一标准来衡量。空间的消耗或需求也可以用大O表示,而且它总是小于或等于时间需求。
以下是我的学习笔记:
1.求值与霍纳法则,即为秦九韶公式。
2.测定运行时间的最可靠方法是计数对运行时间有贡献的基本操作的执行次数。运行时间与这个计数成正比。
java数据结构
何必如此
java 数据结构
Java 数据结构
Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:
枚举(Enumeration)
位集合(BitSet)
向量(Vector)
栈(Stack)
字典(Dictionary)
哈希表(Hashtable)
属性(Properties)
以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collect
MybatisHelloWorld
3213213333332132
//测试入口TestMyBatis
package com.base.helloworld.test;
import java.io.IOException;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibat
Java|urlrewrite|URL重写|多个参数
7454103
java xml Web 工作
个人工作经验! 如有不当之处,敬请指点
1.0 web -info 目录下建立 urlrewrite.xml 文件 类似如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE u
达梦数据库+ibatis
darkranger
sql mysql ibatis SQL Server
--插入数据方面
如果您需要数据库自增...
那么在插入的时候不需要指定自增列.
如果想自己指定ID列的值, 那么要设置
set identity_insert 数据库名.模式名.表名;
----然后插入数据;
example:
create table zhabei.test(
id bigint identity(1,1) primary key,
nam
XML 解析 四种方式
aijuans
android
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object
spring中配置文件占位符的使用
avords
1.类
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.o
前端工程化-公共模块的依赖和常用的工作流
bee1314
webpack
题记: 一个人的项目,还有工程化的问题嘛? 我们在推进模块化和组件化的过程中,肯定会不断的沉淀出我们项目的模块和组件。对于这些沉淀出的模块和组件怎么管理?另外怎么依赖也是个问题? 你真的想这样嘛? var BreadCrumb = require(‘../../../../uikit/breadcrumb’); //真心ugly。
上司说「看你每天准时下班就知道你工作量不饱和」,该如何回应?
bijian1013
项目管理 沟通 IT职业规划
问题:上司说「看你每天准时下班就知道你工作量不饱和」,如何回应
正常下班时间6点,只要是6点半前下班的,上司都认为没有加班。
Eno-Bea回答,注重感受,不一定是别人的
虽然我不知道你具体从事什么工作与职业,但是我大概猜测,你是从事一项不太容易出现阶段性成果的工作
TortoiseSVN,过滤文件
征客丶
SVN
环境:
TortoiseSVN 1.8
配置:
在文件夹空白处右键
选择 TortoiseSVN -> Settings
在 Global ignote pattern 中添加要过滤的文件:
多类型用英文空格分开
*name : 过滤所有名称为 name 的文件或文件夹
*.name : 过滤所有后缀为 name 的文件或文件夹
--------
【Flume二】HDFS sink细说
bit1129
Flume
1. Flume配置
a1.sources=r1
a1.channels=c1
a1.sinks=k1
###Flume负责启动44444端口
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=44444
a1.sources.r1.chan
The Eight Myths of Erlang Performance
bookjovi
erlang
erlang有一篇guide很有意思: http://www.erlang.org/doc/efficiency_guide
里面有个The Eight Myths of Erlang Performance: http://www.erlang.org/doc/efficiency_guide/myths.html
Myth: Funs are sl
java多线程网络传输文件(非同步)-2008-08-17
ljy325
java 多线程 socket
利用 Socket 套接字进行面向连接通信的编程。客户端读取本地文件并发送;服务器接收文件并保存到本地文件系统中。
使用说明:请将TransferClient, TransferServer, TempFile三个类编译,他们的类包是FileServer.
客户端:
修改TransferClient: serPort, serIP, filePath, blockNum,的值来符合您机器的系
读《研磨设计模式》-代码笔记-模板方法模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
配置心得
chenyu19891124
配置
时间就这样不知不觉的走过了一个春夏秋冬,转眼间来公司已经一年了,感觉时间过的很快,时间老人总是这样不停走,从来没停歇过。
作为一名新手的配置管理员,刚开始真的是对配置管理是一点不懂,就只听说咱们公司配置主要是负责升级,而具体该怎么做却一点都不了解。经过老员工的一点点讲解,慢慢的对配置有了初步了解,对自己所在的岗位也慢慢的了解。
做了一年的配置管理给自总结下:
1.改变
从一个以前对配置毫无
对“带条件选择的并行汇聚路由问题”的再思考
comsci
算法 工作 软件测试 嵌入式 领域模型
2008年上半年,我在设计并开发基于”JWFD流程系统“的商业化改进型引擎的时候,由于采用了新的嵌入式公式模块而导致出现“带条件选择的并行汇聚路由问题”(请参考2009-02-27博文),当时对这个问题的解决办法是采用基于拓扑结构的处理思想,对汇聚点的实际前驱分支节点通过算法预测出来,然后进行处理,简单的说就是找到造成这个汇聚模型的分支起点,对这个起始分支节点实际走的路径数进行计算,然后把这个实际
Oracle 10g 的clusterware 32位 下载地址
daizj
oracle
Oracle 10g 的clusterware 32位 下载地址
http://pan.baidu.com/share/link?shareid=531580&uk=421021908
http://pan.baidu.com/share/link?shareid=137223&uk=321552738
http://pan.baidu.com/share/l
非常好的介绍:Linux定时执行工具cron
dongwei_6688
linux
Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux 定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。
新增调度任务推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cr
Yii assets目录生成及修改
dcj3sjt126com
yii
assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件,但是我们又希望将module单独出来,所以需要使用发布,即将一个目录下的文件复制一份到assets下面方便通过url访问。
assets设置对应的方法位置 \framework\web\CAssetManager.php
assets配置方法 在m
mac工作软件推荐
dcj3sjt126com
mac
mac上的Terminal + bash + screen组合现在已经非常好用了,但是还是经不起iterm+zsh+tmux的冲击。在同事的强烈推荐下,趁着升级mac系统的机会,顺便也切换到iterm+zsh+tmux的环境下了。
我为什么要要iterm2
切换过来也是脑袋一热的冲动,我也调查过一些资料,看了下iterm的一些优点:
* 兼容性好,远程服务器 vi 什么的低版本能很好兼
Memcached(三)、封装Memcached和Ehcache
frank1234
memcached ehcache spring ioc
本文对Ehcache和Memcached进行了简单的封装,这样对于客户端程序无需了解ehcache和memcached的差异,仅需要配置缓存的Provider类就可以在二者之间进行切换,Provider实现类通过Spring IoC注入。
cache.xml
<?xml version="1.0" encoding="UTF-8"?>
Remove Duplicates from Sorted List II
hcx2013
remove
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,Given 1->2->3->3->4->4->5,
Spring4新特性——注解、脚本、任务、MVC等其他特性改进
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
MySQL安装文档
liyong0802
mysql
工作中用到的MySQL可能安装在两种操作系统中,即Windows系统和Linux系统。以Linux系统中情况居多。
安装在Windows系统时与其它Windows应用程序相同按照安装向导一直下一步就即,这里就不具体介绍,本文档只介绍Linux系统下MySQL的安装步骤。
Linux系统下安装MySQL分为三种:RPM包安装、二进制包安装和源码包安装。二
使用VS2010构建HotSpot工程
p2p2500
HotSpot OpenJDK VS2010
1. 下载OpenJDK7的源码:
http://download.java.net/openjdk/jdk7
http://download.java.net/openjdk/
2. 环境配置
▶
Oracle实用功能之分组后列合并
seandeng888
oracle 分组 实用功能 合并
1 实例解析
由于业务需求需要对表中的数据进行分组后进行合并的处理,鉴于Oracle10g没有现成的函数实现该功能,且该功能如若用JAVA代码实现会比较复杂,因此,特将SQL语言的实现方式分享出来,希望对大家有所帮助。如下:
表test 数据如下:
ID,SUBJECTCODE,DIMCODE,VALUE
1&nbs
Java定时任务注解方式实现
tuoni
java spring jvm xml jni
Spring 注解的定时任务,有如下两种方式:
第一种:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http
11大Java开源中文分词器的使用方法和分词效果对比
yangshangchuan
word分词器 ansj分词器 Stanford分词器 FudanNLP分词器 HanLP分词器
本文的目标有两个:
1、学会使用11大Java开源中文分词器
2、对比分析11大Java开源中文分词器的分词效果
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:
/**
* 获取文本的所有分词结果, 对比