web前端常见的面试题汇总(一)
标签前(接近HTML文件底部)
< script type= "text/javascript" >
function downloadJSAtOnload ( ) {
var element = document. createElement ( "script" ) ;
element. src = "defer.js" ;
document. body. appendChild ( element) ;
}
if ( window. addEventListener)
window. addEventListener ( "load" , downloadJSAtOnload, false ) ;
else if ( window. attachEvent)
window. attachEvent ( "onload" , downloadJSAtOnload) ;
else
window. onload = downloadJSAtOnload;
< / script>
6.2.6 使用定时器setTimeout的方式
代码如下:
< script type= "text/javascript" >
function A ( ) {
$. post ( "/lord/login" , { name: username, pwd: password} , function ( ) {
alert ( "Hello World!" ) ;
} )
}
$ ( function ( ) {
setTimeout ( "A()" , 1000 ) ;
} )
< / script>
6.2.7 使用jQuery中的getscript函数
getScript() 方法通过 HTTP GET 请求载入并执行 JavaScript 文件。 语法:jQuery.getScript(url,success(response,status)) url(必写):将要请求的 URL 字符串 success(response,status)(可选):规定请求成功后执行的回调函数。 其中的参数 response - 包含来自请求的结果数据 status - 包含请求的状态(“success”, “notmodified”, “error”, “timeout” 或 “parsererror”)
$. getScript ( "test.js" ) ;
$. getScript ( "test.js" , function ( ) {
alert ( "Script loaded and executed." ) ;
} ) ;
延迟js加载的6中方式
7. Ajax是什么?如何创建一个Ajax?
详细解析看我写的写篇文章:深入了解XMLHttpRequest对象 是什么:
我的理解时Ajax是一种进行异步通信的方法,Ajax的核心是XMLHttpRequest对象。使用Ajax方法请求数据,可以使得页面不重新刷新或者跳转的情况下加载更新数据。
其通过直接由js脚本向服务器发送http请求,然后服务器返回响应数据,更新网页相应的部分
怎么创建: 1)首先是创建一个异步调用对象,即XMLHttpRequest()对象; 2)然后调用open()方法建立与服务器的连接,open()方法接收三个参数,第一个参数是method即请求的方法(get、post、put等),第二个参数是请求url,第三个参数接收一个布尔值,用来表示是否发送异步请求;此时嗲用open()方法并不是真正的向服务器发送了请求,而是一个准备阶段; 3)在发送请求前,我们可以为这个对象添加一些信息和监听函数,比如可以通过setRequestHeader方法来添加请求头信息等。一个XMLHttpRequest对象一共有五种状态,为这个对象状态的变化添加监听函数。由于向服务器发送了请求之后,响应状态时一直在改变的,且每一次改变,都会触发触发onreadstatechange事件,通常情况下对readySteta=4时进行判断,代表服务器返回的数据全部接收完成;同时判断服务器的响应状态码大于等于200或者小于300时代表返回值横穿,我们便可以对服务器返回的数据进行相应的处理。进而对页面进行更新;(以上也可以使用onload事件进行判断) 3)当对象的属性和监听函数设置完成之后,调用send()方法,向服务器发送请求。send()方法可以接收参数作为发送的数据体,该参数类型可以为json、blob等,当你不需要向服务器发送数据时,传入null值;
创建:
const xhr = new XMLHttpRequest ( ) ;
xhr. open ( 'get' , '/server' , true ) ;
xhr. responseType = 'json'
xhr. setRequestHeader ( 'MyHeader' , 'MyValue' ) ;
xhr. onload = function ( ) {
console. log ( '请求失败了...' )
}
xhr. onreadystatechange = function ( ) {
if ( this . readyState !== 4 ) {
return ;
}
if ( this . status >= 200 && this . status < 300 ) {
console. log ( this . responseText)
} else {
console. log ( this . statusText)
}
}
xhr. send ( null ) ;
8.解决Ajax中浏览器缓存问题
说明:
Ajax能提高页面的加载速度主要原因是通过Ajax减少了重复数据的载入,也即在载入数据的同时将数据缓存到内存中,一旦数据被加载,只要没有刷新页面,这些数据就会一直被缓存在内存中。
当提交的URL与历史的URL一致时,就不需要提交给服务器,即不需要从服务器中获取数据,这样虽然降低了服务器的负载,提高了用户的的体验,但不能及时更新数据。
为了保证读取的数据是最新的,需要禁止其缓存功能
解决思路: 1.禁掉缓存 2.更新请求URL(但不是改变URL),因为只要URL不变,那么浏览器就不会取检查服务器是否已经更新,那么浏览器用的数据仍是换粗中的数据
解决: 1)在ajax发送请求前加上
anyAjaxObj. setRequestHeader ( "If-Modified-Since" , "0" ) ;
2)在ajax发送请求前加上
anyAjaxObj. setRequestHeader ( "Cache-Control" , "no-cache" ) ;
3)在URL上加上一个随机数,
"fresh" = Math. random ( )
4)在URL上加上时间戳
"nowtime" = + new Date ( ) . getTime ( ) ;
5)如果是使用jQuery,直接适应$.ajacSetuo({cache:false})。这样页面的所有ajax就会执行这条语句就不需要保存缓存记录;
9.同步和异步的区别
同步就是值当一个进程在执行某个请求的时候,当这个请求需要等待一定的时间才能返回数据,那么这个进程就会一直处于等待状态,直到这个请求返回信息才继需往下执行
异步是指当在一个进程中执行某个请求时,且这个请求也需要等待一定的时间才能返回,而此时这个进程会继续往下执行,即不会堵塞等待信息的返回,
通俗的讲,同步是值客户端向服务端发送请求,在等待客户端响应请求时,客户端不能进行其他操作,直到服务器返回请求; 异步就是客户端向服务器发送请求,在等待服务端响应的时候,客户端不必等到服务端响应结束,可以进行其他操作;
10. 如何解决跨域问题
详细解析可以参看我写的这篇文章:前端常见的跨域解决方法
11.简单谈一下cookie?
详细解析可以查看我写的这篇文章:聊一聊cookie
在这里主要描述一下面试时应该如何回答:
我的理解是,cookie是服务端用来维护会话状态信息的数据。当浏览器向服务器发送带有验证的请求时,服务器进行验证,生成cookie;然后服务器响应请求,并通过响应头的set-Cookie字段将生成的cookie返回给浏览器,那次浏览器提取cookie,然会将其保存在本地内存中。当下次再请求时,则将已经验证的cookie发送至服务器,服务器验证通过便响应请求;这样一来便可以实现一些用户登录状态等功能;
cookie的大小一般为4kb,并且只能够被同源的页面共享访问
服务器可以适应set-Cookie的相应头来配置cookie信息,一个cookie包括了5个属性。分别为expires、domain、path、secure、HttpOnly。其中expries定义的cookie的期限,domain是域名、path是路径,domain和path共同约束了cookie可以被哪些url访问。secure定义cookie是否在安全协议下发送,HttpOnly规定cookie只能被服务器反问,浏览器的js不能访问cookie。
在发送xhr跨域请求时,cookie不会自动添加到请求头部(Request Header),但是可以通过服务器和客户端进行限行设置
12.JS中几种模块化规范
对于CommonJS、AMD、CMD以及ES6 Module模块规范详细解析可以参考我写的这篇文章:JS中的几种模块化规范 在这里再总结一下:
第一种是Commonjs模块化规范:CommonJS模块化规范,它通过Require 来引入模块,通过module.exports 来定义模块的输出接口。其主要在服务端使用(比如Nodejs),因为其原理是同步加载,再服务端js代码都是存储在本地内存的,所以读取较快。而在浏览器中的模块的加载往往是需要通过网络请求,往往是需要通过异步加载的方式实现;
第二种是AMD方案:AMD方案使用的原理是异步加载模块,且其遵循的是依赖前置,即在定义模块时就要定义相关的依赖,并且这些模块会在加载完成之后直接执行,require.js实现了AMD规范
第三种是CMD模块,CMD模块加载模块的原理也是异步加载的,其遵循的是就近原则,对于需要加载的模块使用reqire path引入即可,并且模块的执行也是遇到requie才执行。
第四种是ES6 Module模块,其使用export形式定义模块,使用import的方式导入模块,ES6模块的加载时在编译时加载
13 Require.js的核心原理是什么?
概念 requireJS时基于AMD模块化加载规范,使用回调函数来解决模块化加载问题
原理 requireJS是使用script元素,通过script元的的src属性来引入模块
特点 实现js文件的异步加载 管理模块之间的依赖,便于代码的编程和维护
总:requireJS的核心原理是通过动态创建script脚本来异步引入模块,然后对每个脚本的load事件进行监听,如果每个脚本都加载完成了,再调用回调函数执行模块!
14.ECMScript6中怎样写class,为什么会出现class?
1.class的基本语法 创建类实例对象不同于构造方法,需要使用new关键字来创建
class Point {
constrctor ( ) { }
}
let p= new Point ( ) ;
2.class是ES6新增的语法,我的理解是为了补充js中缺少的一些面向对象语言的特性。通过class可以有利于我们更好的组织代码,但class还是具有原型继承的思想,比如class中属性和方法可以添加在原型上,为所有类的实例对象所共享;
再详细一点关于ES6中class的说明可以参考我写的这篇文章: ES6中的class
15. document.write和innerHTML的区别
使用document.write的内容会替代掉整个文档的内容,即会重写整个页面
使用innerHTML只是替代指定元素的内容,只会重写页面中部分内容
使用 document.write(‘xxxx’); element.innerHTML=“xxxx”;
16.javascript中类数组对象的定义
1)类对象:拥有length属性和若干索引属性的对象都可以被称为类数组; 2)类数组对象和数组对象类似,只是类数组对象不能使用数组对象特有的方法(若想使用,需要将类数组对象转换为数组对象) 3)常见的数组是对象:arguments、DOM方法返回结果(NodeList、HTMLCollection)
17.类数组对象转换为数组对象的常见的方法
Array.prototype.slice.call(类数组);
[].slice.call(类数组);
Array.from(类数组)
[…类数组]----扩展运算符
function fun ( ) {
console. log ( 'arguments' , arguments) ;
const arr1 = Array. prototype. slice. call ( arguments)
console. log ( 'arr1' , arr1)
const arr2 = [ ] . slice. call ( arguments)
console. log ( 'arr2' , arr2)
const arr3 = Array. from ( arguments)
console. log ( 'arr3' , arr3)
const arr4 = [ ... arguments]
console. log ( 'arr4' , arr4)
}
fun ( 1 , 2 , 3 , 4 )
18.数组中有哪些原生的方法,举例以下?
数组和字符串的转换方法:toString(),join()
,其中join可以接收特定字符串参数,将作为将数组转换为字符串时的分割符
数组尾部操作的方法:pop(),push()
数组首部操作方法:unshift(),shift()
数组重排序的方法:reverse(),sort()
,其中sort几首一个函数作为参数,该函数规定了排序的方式
数组中的迭代方法:every(),forEach(),filter(),map()
数组中查找特定索引的方法:indexOf(),indexLastOd()
数组链接方法:concat()
,返回的是拼接好的数组,不影响原数组
数组中截取方法:slice()
,用于截取数组的一部分返回,不影响原数组
数组插入方法:splice()
,影响原数组
19. 哪些操作会造成内存泄漏
19.1意外的全部变量的使用
即当我们使用一个未声明的变量时,实质上意外的创建了一个全局变量,而这个变量会一直留在内存中无法被收回
示例1: Javascript处理未定义变量的方式比较宽松:未定义的变量会在全局对象创建一个新变量,在浏览器中,全局变量时window。
function foo ( arg) {
bar = "this is a hidden global variable" ;
}
真相是:
function foo ( arg) {
window. bar = "this is an explicit global variable" ;
}
函数foo内部忘记使用var,意外创建了一个全局变量,而使这个变量一直保存在内存中;
示例2: 另一种意外的全局变量可能由this创建:
function foo ( ) {
this . variable = "potential accidental global" ;
}
foo ( ) ;
如何避免这种情况呢?
在javascript文件头部加上’use strict‘,可以避免此类错误的发生。使用严格模式解析javascript,避免意外的全局变量
19.2被遗忘的定时器或回调函数
即当我们设置了定时器如setInterval,而忘记取消它的时候,如果循环函数有对外局部变量的引用的话,那么这个变量会一直保存再保存着
19.3脱离DOM的引用
即是当我们获取一个DOM元素的引用的时候,而后面这个DOM元素被删除,我由于我们一直保留着这个元素的引用,所以它也无法被回收
19.4闭包
闭包的不合理使用,从而导致某些变量一直被留在内存中
20. 如何判断当前脚本运行在浏览器(browser)还是在node环境种?
if ( typeof window !== 'undefined' ) {
console. log ( 'browser' ) ;
}
if ( typeof global !== 'undefined' ) {
console. log ( 'node' ) ;
}
或者
this === window? console. log ( 'browser' ) : console. log ( 'node' ) ;
通过判断Global对象是否未window,使window则允许再浏览器种,如果为undefined,则当前脚本运行再node环境下
21.移动端的点击事件有延迟,时间 是多少,为什么会有?怎么解决这个问题?
移动端的点击延迟
移动端的点击延迟时间是300ms,因为移动端有默认的双击缩放操作,浏览器通过判断用户第一个此点击与第二次点击的时间,来确认用户是否是需要进行双击缩放的操作。(即浏览器点击后要等待300ms,看用户有没有下一次点击,来判断是不是双击)
怎么解决点击延迟
1)使用meta标签来禁用页面的缩放 ps:但是这种方式的缺点是牺牲了页面的缩放,我们不想要的只是双击双击缩放行为,我们还是希望能够通过双指来实现缩放的,
< meta name= "viewport" content= "user-scalable=no" >
< meta name= "viewport" content= "initial-scale=1,maximum-scale=1" >
2)调用FastClick库 FastClick库的相关介绍:FastClick是专门为解决移动端浏览器300毫秒点击延迟问题所开发的一个轻量级的库。FastClick的实现原理是在检测到touched事件的时候,会通过DOM自定义事件立即触发模拟一个click事件 ,并把浏览器在300ms之后的click事件阻止掉,实现如下:
< script src= "js/fastclick.min.js" > < / script>
if ( 'addEventListener' in document) {
document. addEventListener ( 'DOMContentLoaded' , function ( ) {
FastClick. attach ( document. body) ;
} , false ) ;
}
总:使用FastClick是最好的方案,不存在点击创投现象(对于点击穿透不熟悉的可以自行查一下资料) 可以参考这篇文章:https://blog.csdn.net/qq_42532128/article/details/106176195
22. 什么是“前端路由”?什么时候适合使用”前端路由”?“前端路由”有哪些优缺点?
1.前端路由:前端路由就是把路由对应的内容或者页面的任务交给前端来做,以前是通过服务器根据url的不同返回不同的页面实现的。 2.使用:在单页面应用中,大部分页面结构不变,只改变内容的使用。 3.一般有两种形式的前端路由,一是hash模式(#),二是pushState的方式 4.优缺点:
优点:用户体验好,不需要每次都从服务器获取,快速展现给用户
缺点:单页面无法记住之前滚动的位置,无法在前进、后退的时候记住滚动的位置
23.检测浏览器版本有哪些方式?
有两种方式: 1.通过检测window.navigator.userAgent的值,但是这种方式不是很可靠,因此这个值可以被改变(如早期的ei会伪装userAgent的值为Mozilla来躲过服务器的检测) 2.可以通过功能检测,根据每个浏览器独有的特性进行判断,如ie下独有的ActiveAObject
24. 什么是Ployfill
Ployfill的作用是为了解决API的兼容问题,比如在不同的浏览器中,支持的API有所差异,但是若想在不支持某API的浏览器中实现这个功能,则需要引入Ployfill(当然也可以自己写) 举个例子:(有些旧的浏览器不支持Number.isNan方法mPloyfill可以是这样的:)
if ( ! Number. isNaN) {
Number. isNaN = function ( num) {
return ( num!= num)
}
}
25.使用JS实现获取文件扩展名
< head>
< script type = " text/javascript" >
function fnGetExtension ( ) {
var fileInput = document. getElementById ( 'myFile' ) ;
var fileName = fileInput. files[ 0 ] . name;
var fileExtension = fileName. split ( '.' ) . pop ( ) ;
alert ( fileExtension) ;
}
script >
head >
< body>
< form action = " /uploadFile" onsubmit = " return false;" >
< input id = " myFile" type = " file" name = " file" >
< button onclick = " fnGetExtension()" > 获得扩展名button >
form >
body >
html >
###Vue部分 https://zhuanlan.zhihu.com/p/111310865
26. 介绍以下js中的节流和防抖
26.1 节流(通过设置perTime与nowTime)
节流技术是用于设定在固定事件内,执行特定的功能代码,如果同一单位事件内某事件被多次触发,那么只有一次生效 (节流可以用在scroll函数的事件监听上,通过事件节流来降低事件调用的频率)
26.2 防抖(通过定时器)
在时间触发n秒后再执行回调,如果这n秒内事件又被触发,则重新计时
比如在搜索功能时,用户输入关键字搜索,不用每次输入都发送请求显示数据,只有等待用户停止输入后等待一定的时间(确保用户不再输入),再执行特定功能的代码。 所用的技术是定时器,和闭包技术
1.防抖的实现
function debounce ( fun, wait) {
let timer = null ;
return function ( ) {
clearInterval ( timer)
timer = setInterval ( ( ) => {
fun. apply ( this )
} , wait)
}
}
var result = debounce ( fun1, 1000 )
result ( )
2.节流的实现
function limtfun ( fun, wait) {
var perTime = 0 ;
return function ( ) {
var nowTime = new Date ( )
if ( nowTime - perTime > wait) {
fun. call ( this )
perTime = nowTime
}
}
}
27. Object.is()与原来的比较操作符“===” 与“==”的区别
“==”两等号在进行比较时,若两边的类型不一致,则会进行隐式的类型转换 (比如‘1’->1、true->1,false->0、{}->[Object Object]
三等号比较时不进行隐式类型转换,类型和值有一不同则会返回false
而Object.is()则是在三等好的判别基础上做了特殊的处理,使得-0和+0不再相当,而NaN与NaN会返回true
Object.is()被认为具有特殊用途,但不能说时Object.is()比其他的相等对比更加严格或者宽松
28.浏览器中的事件循环机制(Event Looping)
JS在执行的过程中会产生一个执行环境,js的代码在这个执行环境中按顺序执行,当遇到异步代码时,会被挂起到事件队列中(Task),对于这个队列中的任务则会涉及到微任务和宏任务,当执行栈的为空时,由于事件循环机制,就会从事件队列中拿出需要执行的代码到执行栈中执行,此时执行的循序时先执行微任务,当微任务执行完毕之后,再执行宏任务。
29.instanceof的原理
instanceof可以正确判断对象的类型
用于判断某个实例是否属于某个构造函数
在继承关系中用来判断一个实例是否属于它的父类型或者祖先类型的实例;
实现原理是通过判断实例对象的原型属性__proto__和构造函数或者父类的原型对象prototype是否相等,循环遍历,相等则返回true;(简单的说就是只要左边的变量原型链上有右边变量的prototype属性即可)
1)语法
var obj= new Object ( )
obj instanceof Object
2)底层原理
function myInstanceof ( left, right) {
left = left. __proto__;
right = right. prototype;
while ( true ) {
if ( left === null || left === undefined) {
return false
}
if ( left === right) {
return true
}
left = left. __proto__;
}
}
参考文章:https://zhuanlan.zhihu.com/p/105487552
30. 手写封装一个jsonp
function jsonp ( url, data, callback) {
var funcName = 'jsonp_' + Date. now ( ) + Math. random ( ) . toString ( ) . substr ( 2 , 5 ) ;
if ( typeof data === 'object' ) {
var tempArr = [ ] ;
for ( var key in data) {
var value = data[ key] ;
tempArr. push ( key + '=' + value)
}
data = tempArr. join ( '&' )
}
var script = document. createElement ( 'script' )
script. src = url + '?' + data + 'callback=' + funcName
document. body. appendChild ( script) ;
window[ funcName] = function ( data) {
callback ( data)
}
}
jsonp ( 'http:127.0.0.1:3000/api' , { } , function ( res) {
console. log ( res)
} )
参考文章: https://blog.csdn.net/weixin_40483654/article/details/106434990
31.有几种方式可以实现存储功能?分别有什么有优缺点?什么是Service Worker?
31.1 实现的存储功能
实现存储功能:Cookie、localStorage、sessionStorage、indexDB
特性
Cookie
localStroage
sessionStorage
indexDB
数据生命周期
一般由服务器生成,可以设置过期事件
除非被清理,否则一直存在
页面关闭时就被清理
除非被清理,否则一直存在
数据存储大小
4kb
5mb
5mb
无限
与服务端的通信
会一直携带在请求头
不参与下
不参与
不参与
PS:没有大量的数据需求的话,可以使用localStorage和sessionStorage,对于不怎么改变的数据,尽量使用localStorage。
31.2 什么是Service Worker
Service Worker是运行在浏览器背后的独立线程,一般可以用来实现缓存功能,使用Service Worker的话,传输协议必须使用HTTPS。
使用Service Worker实现缓存一般分为三个步骤: 1)首先要注册Service 2)监听install,拿到需要缓存的文件 3)下次用户访问的时候就可以通过拦截请求方式查询是否存在缓存,存在缓存的话就可以直接读取缓存文件,否则就去请求数据
32.浏览器中的缓存机制
缓存可以是性能优化中简单高效的一种方式
对于一个数据请求,分为3个阶段,分为网络请求、后端处理、浏览器响应。浏览器缓存可以帮助我们在第一和第三步中优化性能。比如直接使用缓存而不发请求,或者发请求但后端的数据与前端一致,那么就没有必要再将数据回传回来,这样就减少可数据响应。
接下来我们将通过以下几个方面来探讨浏览器的缓存机制
32.1 缓存位置
我知道的浏览器的缓存位置有Service Worker、网络请求,并且有各自的优先级,当一次查找缓存并且都没有命中的时候,才会请求网络。
32.2 缓存策略
通常浏览器的缓存策略可以分为两种:强缓存和协商缓存。并且这两种缓存策略都是通过设置 HTTP Header 来实现的
1)强缓存(有两种设置方式)
2)协商缓存(两种设置方式) 简单的说,如果缓存过了,就需要发起请求验证资源是否更新。即当浏览器发送请求验证时,如果资源没有发生改变,那么服务器就返回304状态码,并更新浏览器的缓存有效期。(相当于浏览器和服务器进行协商,是否返回新的数据)
32.3 实际场景应用缓存策略
一般来说,现在都会使用工具来打包代码,那么我们可以对文件名进行哈希处理,只有当代码修改之后生产新的文件名 。基于此,我们就可以给代码设置缓存有效期一年Cache-Control:max-age=3153600,这样只有html文件中引入的文件名发生了改变,才回去下载新的代码,否则就一直使用缓存。
33. 插入几万个DOM,如何实现页面不卡顿?
使用分页技术
若不分页,则使用虚拟滚动 技术(比如elment-ui中的scrollbar可以实现)
虚拟滚动:原理时只渲染可视区域内的内容,非可视区的则不渲染,当用户在滚动的时候就实时去替换渲染的内容。
34.什么情况下会产生渲染堵塞?
我们知道,在浏览器的渲染线程和JS引擎线程时互斥的,因此在渲染时,若遇到script标签时,则此时会渲染会停止下来,等待script代码加载完毕,再从暂停的地方重新渲染。也就是说,当你想首屏渲染越快,那么就不应该再首屏加载js文件,也就是建议将script标签放在body标签底部的原因。当然,你也可以给script标签添加defer或者async属性,那么此时的script可以放在任意位置,因为此时js文件会并行下载,若时defer,会等待页面渲染结束才执行,而async会在加载完毕之后立即执行。 只是defer和async表示js文件的加载和解析不会阻塞渲染。‘
35. 重绘和回流
重绘是节点更改了外观而不影响布局,比如更改元素的color属性
回流是改变了节点的布局或者几何属性,比如改变元素的宽高等属性
回流必然发生重绘,重绘不一定引发回流。
36. 减少重绘和回流
1.使用transform替换top 2.使用visibility替换display:none,因为前者只会引发重绘,而后者会引发回流 3.少用table布局,因为table布局很小的一个改动会引发整个table的重新布局 4.将频繁重绘或者回流的节点设置为图层,图层能够阻止该节点的渲染行为影响别的节点。(比如video标签,浏览器会自动将该节点变为图层)
37. 什么是XSS攻击?如何防止XSS攻击?
1.XSS攻击
2. 如何防止
由于问题的源头是js代码的注入,那么我们便想办法不让js生效 方式1:使用转义字符 即需要注意两头的防范: 1)输入 在提交表单时,前端最好将文本内容转成html实体编码,也就是过滤掉
你可能感兴趣的:(Web前端面试题,JavaScript)
3、JavaWeb-Ajax/Axios-前端工程化-Element
所谓远行Misnearch
# JavaWeb 前端 ajax elementui java 前端框架
P34Ajax介绍Ajax:AsynchroousJavaScriptAndXML,异步的JS和XMLJS网页动作,XML一种标记语言,存储数据,作用:数据交换:通过Ajax给服务器发送请求,并获取服务器响应的数据异步交互:在不重新加载整个页面的情况下,与服务器交换数据并实现更新部分网页的技术,例如:搜索联想、用户名是否可用的校验等等。同步与异步:同步:服务器在处理中客户端要处于等待状态,输入域名
Python dict字符串转json对象,小数精度丢失问题
朝如青丝 暮成雪
json python
一前言JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,dict是Python的一种数据格式。本篇介绍一个float数据转换时精度丢失的案例。二问题描述importjsontest_str1='{"π":3.1415926535897932384626433832795028841971}'test_str2='{"value":10.00000}'print
javascript 日期转换为时间戳,时间戳转换为日期的函数
cdcdhj
javascript学习日记 javascript 开发语言 ecmascript
日期转化为时间戳,主要用valueOf()来进行转化为毫秒时间戳,getTime()IOS系统无法解析转换,所以都有valueOf()letgetTimestampOrDate=function(timestamp){lettimeStamp='';constregex=/^\d{4}(-|\/)\d{2}(-|\/)\d{2}$/;constregex2=/^\d{4}(-|\/)\d{2}(-
COMP315 JavaScript Cloud Computing for E Commerce
zhuyu0206girl
javascript 开发语言 ecmascript
Assignment1:Javascript1IntroductionAcommontaskincloudcomputingisdatacleaning,whichistheprocessoftakinganinitialdatasetthatmaycontainerroneousorincompletedata,andremovingorfixingthoseelementsbeforeform
JSON与AJAX:网页交互的利器
入冉心
json ajax 前端
在现代Web开发中,JSON(JavaScriptObjectNotation)和AJAX(AsynchronousJavaScriptandXML)是两项不可或缺的技术。它们共同为网页提供了动态、实时的数据交互能力,为用户带来了更加流畅和丰富的体验。本文将详细介绍JSON和AJAX的概念、原理,并通过代码示例展示它们在实际开发中的应用。一、JSON:轻量级的数据交换格式JSON是一种轻量级的数据
javascript的数据类型及转换
田小田txt
一、JavaScript数据类型:共有string,number,boolean,object,function五种数据类型;其中Object,Date,Array为对象型;2个不包含任何值的数据类型:null,undefined。二、Typeof查看数据类型:typeof"John"//返回stringtypeof3.14//返回numbertypeofNaN//返回numbertypeoffa
javascript实现SM2加密解密
人生在勤,不索何获
javascript 前端 jquery
前提JavaWeb环境前端代码window.sm2=function(t){functioni(e){if(r[e])returnr[e].exports;varn=r[e]={i:e,l:!1,exports:{}};returnt[e].call(n.exports,n,n.exports,i),n.l=!0,n.exports}varr={};returni.m=t,i.c=r,i.d=fu
Vue:为什么要使用v-cloak
刻刻帝的海角
vue.js 前端 javascript
Vue.js是一种流行的JavaScript框架,它使我们能够构建交互性强大的用户界面。在Vue.js中,v-cloak是一个指令,用于解决在页面加载时出现的闪烁问题。本文将介绍如何使用v-cloak及代码来优化Vue.js应用程序的渲染效果。引言当我们使用Vue.js构建应用程序时,有时会遇到一个问题:在页面加载时,由于Vue.js需要一定的时间来解析和渲染模板,会导致页面上显示出未经处理的Mu
JavaScript快速入门笔记之二(变量、常量、数据类型)
eshineLau
前端开发 javascript 笔记 前端
JavaScript快速入门笔记之二(变量、常量、数据类型)1、变量何时使用变量:程序中的一切数据都要保存在变量中,反复使用如何使用变量:2种情况:赋值和取值赋值:2步:1.1创建变量:——声明——创建一个新的空变量语法:var变量名;强调:仅声明,未赋值的变量,默认值是undefined命名:1.不能以数字开头2.不能用保留字。3.一般采用驼峰命名1.2赋值:将数据保存到变量中语法:变量名=数据
前端埋点解决方案
zhu_zhu_xia
前端
一、前言:基于神策数据的前端埋点解决方案JavaScript快速使用·神策分析使用手册[预览版]二、sdkgitlab下载地址https://github.com/sensorsdata/sa-sdk-javascript/releases或者npm安装npmisa-sdk-javascript三、入门3.1接入sdk以及配置(version1.17.2),入口文件接入sdk以及添加配置(func
vue时间组件:dayjs与moment
煸橙干儿~~
VUE实战 vue.js 前端 javascript
一、dayjs使用Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。具体使用可参考:dayjs官网1、本年start=dayjs().startOf('year').format('YYYY-MM-DD')end=dayjs().endOf('year').format('YYYY-MM-DD')console.log(start,end)//['2
APP UI自动化测试思路总结
程序员老鹰
ui 测试工具 开发语言 软件测试 经验分享 程序人生 程序员
首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。接下来,一起总结一下APPUI自动化测试的思路吧。一,开发语言选择通常用于自动化测试的编程语言有:Python、Java、Javascript、Ruby、C#、PHP等。一般我们会选择自己熟悉的编程语言来编写自
JS的设计模式(23种)
是个车迷
JavaScript javascript 设计模式 开发语言
JavaScript设计模式是指在JavaScript编程中普遍应用的一系列经过验证的最佳实践和可重用的解决方案模板,它们用来解决在软件设计中频繁出现的问题,如对象的创建、职责分配、对象间通信以及系统架构等。设计模式并不特指某个具体的代码片段,而是一种描述在特定上下文中如何组织程序结构和对象交互的通用指导原则。JavaScript设计模式涵盖了创建型模式(处理对象创建的方式)、结构型模式(关注对象
JavaScript和HTML/CSS之间有什么区别?它们之间的关系是什么?
智伴科技
javascript html css
下面是一个简单的代码示例,展示了HTML、CSS和JavaScript是如何一起工作的:HTML,CSS,JavaScriptExample/*在HTML文档内使用内联CSS*/.greeting{color:blue;font-size:24px;}Hello,素材8网,www.sucai8.cnChangeText//在HTML文档内使用内联JavaScriptdocument.addEven
【大咖力荐 新手必备】软件开发入门,这300篇文章就够了!
高校俱乐部
软件开发 新手必备 数据编码 IP
小编在这里根据知识图谱整理了CSDN站内的优质文章300篇,帮助见习工程提升技术能力、实现系统化学习!基础IT技术文章300篇大合集包含:【信息/编码】进制转换25篇、数据编码25篇;【IP/组网】网关与网段25篇、IP协议26篇、主机与DNS23篇、访问控制37篇;【程序逻辑】JavaScript29篇、常用算法37篇;【Web基础】HTML31篇、CSS32篇、DOM与BOM23篇扫码添加小助
问了一下 GPT--当前基于 React + TypeScript 的生态中 一名前端工程师需要具备哪些能力?
zoe_ya
前端 gpt react.js
在当前基于React+TypeScript的生态中,你需要掌握一系列的技能和知识,以构建现代化、高效能且可维护的前端应用程序。以下是一些关键领域的知识和技能点:基础知识HTML/CSS/JavaScript:理解语义化的HTML、CSS布局和定位技术以及现代JavaScript(ES6+)的特性。TypeScript:掌握TypeScript的基本语法、类型系统以及如何在React项目中使用Typ
reactive 和ref区别和原理
小王学前端️
vue3 vue.js 前端 javascript
reactive和ref区别和原理在Vue3中,reactive和ref都是用来创建响应式数据的方法。它们的主要区别在于如何使用它们以及它们如何处理值.reactive是用来创建响应式对象的。当你传递一个普通的JavaScript对象给reactive,它会返回一个新的响应式对象,这个对象与原始对象具有相同的属性和值,但是当这些属性被修改时,Vue会自动跟踪这些更改并更新视图。import{rea
react 和vue区别
小王学前端️
vue3 react.js vue.js 前端
React和Vue是两个非常流行的前端JavaScript框架,它们有许多相似之处,但也有一些关键的区别:设计理念:React更倾向于函数式编程,推崇组件的纯粹性和可预测性,而Vue则更倾向于易用性和灵活性,提供了更多的内置特性和语法糖。模板vsJSX:Vue使用基于HTML的模板语法,这使得开发者可以快速上手。而React使用JSX,它是JavaScript的语法扩展,允许在JavaScript
爆肝五千字!ECMAScript核心概念与现代JavaScript特性全解析
洛可可白
前端专栏 ecmascript 前端 javascript
前言欢迎来到我的技术小宇宙!这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。洛可可白:个人主页个人专栏:✅前端技术✅后端技术个人博客:洛可可白博客代码获取:bestwishes0203封面壁纸:洛可可白wallpaper文章目录爆肝五千字!ECMAScript核心概念与现代JavaScript特性全解析基本语法1
速盾:cdn分流是什么意思
速盾cdn
服务器 安全
CDN分流是一种通过内容分发网络(CDN)来优化网站访问速度和用户体验的技术。通过CDN分流,网站的静态资源可以被缓存到全球不同的CDN节点上,从而减少用户请求原始服务器的次数,提高了网站的响应速度和可靠性。本文将详细介绍CDN分流的原理、优势和应用场景。CDN分流的原理是通过将网站的静态资源(如HTML、CSS、JavaScript、图片、视频等)复制到CDN节点上,并将用户的请求转发到离用户最
vue的axios教程
可爱的小小小狼
前端 vue.js okhttp 前端
ajax技术:不重新加载整个页面的情况下,异步地与服务器进行通信,并更新页面的部分内容Ajax(AsynchronousJavaScriptandXML)是一种使用JavaScript向服务器发送和接收数据的技术。Ajax的工作原理基于以下关键组件:XMLHttpRequest对象:XMLHttpRequest是浏览器提供的API,用于创建HTTP请求,并与服务器进行通信。通过XMLHttpReq
JS中的八种继承方法
酥脆角
javascript 开发语言 ecmascript
1.原型链继承:原型链继承是JavaScript中最基本的继承方式。每个对象都有一个原型对象,通过原型链将属性和方法沿着对象链传递下来。在原型链继承中,通过将子构造函数的原型对象指向父构造函数的实例,实现了继承。这意味着子对象可以访问父对象原型链上的属性和方法。functionParent(){this.name='Parent';}Parent.prototype.sayHello=functi
原型对象与原型链
网站打工人
javascript 原型模式 开发语言
原型对象实际上每一个构造函数都有一个名为prototype的属性,就是原型的意思,prototype的是对象类据类型,称为构造函数的原型对象,每个原型对象都具有constructor属性代表了该原型对象对应的构造函数。 functionPerson(){ } //每个函数都有prototype属性 console.log(Person.prototype);了解了JavaScript中构造函数
JS中的继承
浅墨_东
javascript 开发语言 ecmascript
在JavaScript中,有多种实现继承的方法。下面介绍几种常见的继承方式以及它们的优缺点:原型链继承原型链继承是JavaScript中最基本的一种继承方式。它的原理是通过将父类的实例作为子类的原型(prototype)来实现继承。functionParent(){this.name='Parent';}Parent.prototype.sayHello=function(){console.lo
【前端框架的发展史详细介绍】
程序员不想敲代码啊
前端框架
前端框架的发展史前端框架的发展史可以追溯到1995年,当时微软推出了IE浏览器并开始支持CSS,随后,在1997年,W3C(万维网联盟)发布了CSS的第一个正式标准。在2003年,苹果推出了Safari浏览器,它支持Web标准,包括CSS和JavaScript。同年,Mozilla基金会发布了Firefox浏览器,也开始支持这些标准。2006年,jQuery库发布,它简化了JavaScript编程
JavaScript函数3:Math
天下vs栋哥
2.Math2.1console.log(Math.PI)πconsole.log(Math.E)econsole.log(Math.ceil(4.01))5向上求整console.log(Math.floor(4.999999999))4向下求整console.log(Math.sqrt(9))求方根console.log(Math.pow(3,3))3^3console.log(Math.ab
uniapp 实现双击点赞出现特效
全栈^_^小菜鸟
uni-app java 前端
更新一下老板改了需求要加上特效1.创建点赞按钮首先,在你的页面中创建一个点赞按钮全局点赞的话就写在最外面的标签就行了。你可以使用组件或者自定义一个视图组件。点赞这里我们使用了@click事件监听器来监听按钮的点击事件,并且使用了:class绑定来根据isDoubleTap的值改变按钮的样式(可选)。showHeart用于控制小心心的显示与隐藏。2.实现双击检测在JavaScript部分,你需要实现
使用JavaScript写拖拽案例
诶呦我那个暴脾气
前端 前端 拖拽案例 JavaScript
//设置HTML标签中的css样式。//用全局选择器(*)把HTML中的默认样式去掉。//设置一个拖拽用的div盒子。使用绝对定位。css代码:*{margin:0;padding:0;list-style:none;}#box{width:100px;height:100px;background-color:hotpink;position:absolute;cursor:move;}HTML
js中怎样添加、移出、插入、复制、创建?
一个大长腿
javascript 开发语言 ecmascript
在JavaScript中,可以使用以下方法来添加、移除、插入、复制和创建元素:添加元素:使用appendChild()方法将一个子元素添加到指定父元素的末尾。使用insertBefore()方法将一个子元素插入到指定父元素的指定位置之前。移除元素:使用removeChild()方法从父元素中移除指定的子元素。插入元素:使用insertAdjacentHTML()方法在指定元素的相对位置插入HTML
【javaScript/ES6】获取对象数组中其中一个属性值的集合(forEach、Array.from)
花间半盘棋
javaScript javascript es6 开发语言 前端
引入:有一个对象数组,但只需要其中的某一个属性值。举个栗子,有一个对象数组,其中不止有一个对象:letarr=[{name:'Luenay',age:10},{name:'Kitty',age:20}]但是我只需要包含name的集合;方法1:使用forEach;letresArr=[]arr.forEach(item=>{resArr.push(item.name)})方法2:使用Array.fr
统一思想认识
永夜-极光
思想
1.统一思想认识的基础,才能有的放矢
原因:
总有一种描述事物的方式最贴近本质,最容易让人理解.
如何让教育更轻松,在于找到最适合学生的方式.
难点在于,如何模拟对方的思维基础选择合适的方式. &
Joda Time使用笔记
bylijinnan
java joda time
Joda Time的介绍可以参考这篇文章:
http://www.ibm.com/developerworks/cn/java/j-jodatime.html
工作中也常常用到Joda Time,为了避免每次使用都查API,记录一下常用的用法:
/**
* DateTime变化(增减)
*/
@Tes
FileUtils API
eksliang
FileUtils FileUtils API
转载请出自出处:http://eksliang.iteye.com/blog/2217374 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
各种新兴技术
不懂事的小屁孩
技术
1:gradle Gradle 是以 Groovy 语言为基础,面向Java应用为主。基于DSL(领域特定语言)语法的自动化构建工具。
现在构建系统常用到maven工具,现在有更容易上手的gradle,
搭建java环境:
http://www.ibm.com/developerworks/cn/opensource/os-cn-gradle/
搭建android环境:
http://m
tomcat6的https双向认证
酷的飞上天空
tomcat6
1.生成服务器端证书
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 36
托管虚拟桌面市场势不可挡
蓝儿唯美
用户还需要冗余的数据中心,dinCloud的高级副总裁兼首席营销官Ali Din指出。该公司转售一个MSP可以让用户登录并管理和提供服务的用于DaaS的云自动化控制台,提供服务或者MSP也可以自己来控制。
在某些情况下,MSP会在dinCloud的云服务上进行服务分层,如监控和补丁管理。
MSP的利润空间将根据其参与的程度而有所不同,Din说。
“我们有一些合作伙伴负责将我们推荐给客户作为个
spring学习——xml文件的配置
a-john
spring
在Spring的学习中,对于其xml文件的配置是必不可少的。在Spring的多种装配Bean的方式中,采用XML配置也是最常见的。以下是一个简单的XML配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.or
HDU 4342 History repeat itself 模拟
aijuans
模拟
来源:http://acm.hdu.edu.cn/showproblem.php?pid=4342
题意:首先让求第几个非平方数,然后求从1到该数之间的每个sqrt(i)的下取整的和。
思路:一个简单的模拟题目,但是由于数据范围大,需要用__int64。我们可以首先把平方数筛选出来,假如让求第n个非平方数的话,看n前面有多少个平方数,假设有x个,则第n个非平方数就是n+x。注意两种特殊情况,即
java中最常用jar包的用途
asia007
java
java中最常用jar包的用途
jar包用途axis.jarSOAP引擎包commons-discovery-0.2.jar用来发现、查找和实现可插入式接口,提供一些一般类实例化、单件的生命周期管理的常用方法.jaxrpc.jarAxis运行所需要的组件包saaj.jar创建到端点的点到点连接的方法、创建并处理SOAP消息和附件的方法,以及接收和处理SOAP错误的方法. w
ajax获取Struts框架中的json编码异常和Struts中的主控制器异常的解决办法
百合不是茶
js json编码返回异常
一:ajax获取自定义Struts框架中的json编码 出现以下 问题:
1,强制flush输出 json编码打印在首页
2, 不强制flush js会解析json 打印出来的是错误的jsp页面 却没有跳转到错误页面
3, ajax中的dataType的json 改为text 会
JUnit使用的设计模式
bijian1013
java 设计模式 JUnit
JUnit源代码涉及使用了大量设计模式
1、模板方法模式(Template Method)
定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。
 
Linux常用命令(摘录)
sunjing
crond chkconfig
chkconfig --list 查看linux所有服务
chkconfig --add servicename 添加linux服务
netstat -apn | grep 8080 查看端口占用
env 查看所有环境变量
echo $JAVA_HOME 查看JAVA_HOME环境变量
安装编译器
yum install -y gcc
【Hadoop一】Hadoop伪集群环境搭建
bit1129
hadoop
结合网上多份文档,不断反复的修正hadoop启动和运行过程中出现的问题,终于把Hadoop2.5.2伪分布式安装起来,跑通了wordcount例子。Hadoop的安装复杂性的体现之一是,Hadoop的安装文档非常多,但是能一个文档走下来的少之又少,尤其是Hadoop不同版本的配置差异非常的大。Hadoop2.5.2于前两天发布,但是它的配置跟2.5.0,2.5.1没有分别。 &nb
Anychart图表系列五之事件监听
白糖_
chart
创建图表事件监听非常简单:首先是通过addEventListener('监听类型',js监听方法)添加事件监听,然后在js监听方法中定义具体监听逻辑。
以钻取操作为例,当用户点击图表某一个point的时候弹出point的name和value,代码如下:
<script>
//创建AnyChart
var chart = new AnyChart();
//添加钻取操作&quo
Web前端相关段子
braveCS
web前端
Web标准:结构、样式和行为分离
使用语义化标签
0)标签的语义:使用有良好语义的标签,能够很好地实现自我解释,方便搜索引擎理解网页结构,抓取重要内容。去样式后也会根据浏览器的默认样式很好的组织网页内容,具有很好的可读性,从而实现对特殊终端的兼容。
1)div和span是没有语义的:只是分别用作块级元素和行内元素的区域分隔符。当页面内标签无法满足设计需求时,才会适当添加div
编程之美-24点游戏
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class PointGame {
/**编程之美
主页面子页面传值总结
chengxuyuancsdn
总结
1、showModalDialog
returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口时,用于返回窗口的值
主界面
var sonValue=window.showModalDialog("son.jsp");
子界面
window.retu
[网络与经济]互联网+的含义
comsci
互联网+
互联网+后面是一个人的名字 = 网络控制系统
互联网+你的名字 = 网络个人数据库
每日提示:如果人觉得不舒服,千万不要外出到处走动,就呆在床上,玩玩手游,更不能够去开车,现在交通状况不
oracle 创建视图 with check option
daizj
视图 view oralce
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testv
ToastPlugin插件在cordova3.3下使用
dibov
Cordova
自己开发的Todos应用,想实现“
再按一次返回键退出程序 ”的功能,采用网上的ToastPlugins插件,发现代码或文章基本都是老版本,运行问题比较多。折腾了好久才弄好。下面吧基于cordova3.3下的ToastPlugins相关代码共享。
ToastPlugin.java
package&nbs
C语言22个系统函数
dcj3sjt126com
c function
C语言系统函数一、数学函数下列函数存放在math.h头文件中Double floor(double num) 求出不大于num的最大数。Double fmod(x, y) 求整数x/y的余数。Double frexp(num, exp); double num; int *exp; 将num分为数字部分(尾数)x和 以2位的指数部分n,即num=x*2n,指数n存放在exp指向的变量中,返回x。D
开发一个类的流程
dcj3sjt126com
开发
本人近日根据自己的开发经验总结了一个类的开发流程。这个流程适用于单独开发的构件,并不适用于对一个项目中的系统对象开发。开发出的类可以存入私人类库,供以后复用。
以下是开发流程:
1. 明确类的功能,抽象出类的大概结构
2. 初步设想类的接口
3. 类名设计(驼峰式命名)
4. 属性设置(权限设置)
判断某些变量是否有必要作为成员属
java 并发
shuizhaosi888
java 并发
能够写出高伸缩性的并发是一门艺术
在JAVA SE5中新增了3个包
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
在java的内存模型中,类的实例字段、静态字段和构成数组的对象元素都会被多个线程所共享,局部变量与方法参数都是线程私有的,不会被共享。
Spring Security(11)——匿名认证
234390216
Spring Security ROLE_ANNOYMOUS 匿名
匿名认证
目录
1.1 配置
1.2 AuthenticationTrustResolver
对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticat
NODEJS项目实践0.2[ express,ajax通信...]
逐行分析JS源代码
Ajax nodejs express
一、前言
通过上节学习,我们已经 ubuntu系统搭建了一个可以访问的nodejs系统,并做了nginx转发。本节原要做web端服务 及 mongodb的存取,但写着写着,web端就
在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
lhbthanks
java html struts checkbox
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
003.Kafka基本概念
nweiren
hadoop kafka
Kafka基本概念:Topic、Partition、Message、Producer、Broker、Consumer。 Topic: 消息源(Message)的分类。 Partition: Topic物理上的分组,一
Linux环境下安装JDK
roadrunners
jdk linux
1、准备工作
创建JDK的安装目录:
mkdir -p /usr/java/
下载JDK,找到适合自己系统的JDK版本进行下载:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
把JDK安装包下载到/usr/java/目录,然后进行解压:
tar -zxvf jre-7
Linux忘记root密码的解决思路
tomcat_oracle
linux
1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码 2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断. 3: grub启动菜单中加入 single以单用户进入系统. 4:用以上方法mount到根分区把/etc/passwd中的root密码去除 例如: ro
跨浏览器 HTML5 postMessage 方法以及 message 事件模拟实现
xueyou
jsonp jquery 框架 UI html5
postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。postMessage 方法 JSONP 技术不一样,前者是前端擅长跨域文档数据即时通讯,后者擅长针对跨域服务端数据通讯,p