元素,是不是很棒?
2 scrollIntoView()
你知道吗?当页面的 URL 中包含 #something
元素时,一旦页面加载,浏览器就会自动滚动至具有这个 ID 的元素之处。
这确实是一项很贴心的功能,但如果你在页面加载之后再渲染元素,这项功能就不起作用了。
不过,你也可以通过以下方式,手动地让这项功能重新生效:
document.querySelector(document.location.hash).scrollIntoView();
3 hidden
好吧,hidden 或许不是一个方法,但如果你提出抗议,那我也要争论一下:在 hidden 的背后很可能对应着一个 setter,这可是一个货真价实的方法,对不对?
不管怎样,你是否曾经为了隐藏某个元素而使用过 myElement.style.display = 'none'
这种方法呢?如果是的话,请别再这么做了!
只需调用 myElement.hidden = true
,即可实现元素隐藏的功能。
4 toggle()
嗯,toggle 也不算是元素的方法,它实际上是元素属性上的一个方法。严格来说,这是一种为元素添加或删除某个 class 的方法,具体做法是 myElement.classList.toggle('some-class')
。
如果你曾经通过 if 条件语句为元素添加 class,那就应该赶紧改用这种做法。
正确的方式是为 toggle
方法传入第二个参数,如果该参数返回 true ,则指定的 class 就会添加至元素上。
el.classList.toggle('some-orange-class', theme === 'orange');
我知道你在想些什么:这种写法违背了 ‘toggle’ 这个词的本义(开关),那些从 IE 时代过来的开发者们都这么想,他们断言应当彻底摒弃使用第二个参数的做法。
所以,我收回我的话。不必坚持这种写法了,各位请随意!
5 querySelector()
好吧,你当然知道这个方法,但据我推测,应该只有 17% 的开发者才知道,该方法可以使用在任意元素上。
打个比方,myElement.querySelector('.my-class')
的作用是返回在 myElement
的子代中包含 my-class
这个 class 的所有元素。
6 closest
该方法可在任意元素上使用,它能够向上查找元素的树型结构,可以理解为 与 querySelector()
相反的方法。因此,我可以通过以下方法获取当前内容的对应标头:
myElement.closest('article').querySelector('h1');
这段方法首先向上找到最近的
元素,然后再向下找到最近的
元素。
7 getBoundingClientRect()
在对 DOM 元素调用该方法时,将返回一个包含其空间结构详细信息的简单对象。
{
x: 604.875,
y: 1312,
width: 701.625,
height: 31,
top: 1312,
right: 1306.5,
bottom: 1343,
left: 604.875
}
不过,在调用该方法时需要注意两点:
调用该方法会导致元素的重绘,根据设备与页面复杂程度的不同,重绘的时间可能会占用几毫秒。因此,如果你需要重复地调用该方法,例如在使用动画的场景下,需要特别注意这一点。
并非所有的浏览器都会返回这些值,他们有这个责任么?
8 matches()
假设我需要检查某个元素是否包括一个特定的 class。
这是最复杂的方式:
if (myElement.className.indexOf('some-class') > -1) {
// do something
}
比上面的好一点,但和本文没什么关系:
if (myElement.className.includes('some-class')) {
// do something
}
最佳方式:
if (myElement.matches('.some-class')) {
// do something
}
9 insertAdjacentElement()
我今天才刚学到这一条!它的作用类似于 appendChild()
,但能够更好地控制插入子元素的具体位置。
parentEl.insertAdjacentElement('beforeend', newEl)
与 parentEl.appendChild(newEl)
的作用是一样的,但除此之外,你还可以指定 beforebegin
、afterbegin
或 afterend
这几个参数值,元素将按这些值的名称所示插入相应的位置。
多么强大的控制能力!
多棒的点子。
10 contains()
你有没有遇到过这样的情形,需要知道某个元素是否被包含在另一个元素中?至少我本人经常会遇到这样的问题。
打个比方,假设我在处理一个鼠标点击事件时,需要知道它是发生在一个模态窗口中还是发生在外面(这样我才能够关闭这个窗口),我大概会这么做:
const handleClick = e => {
if (!modalEl.contains(e.target)) modalEl.hidden = true;
};
代码中的 modalEl
是模态窗口的引用,而 e.target
则代表各种发生点击事件的元素。
有趣的是,每当遇到这种情形,在我第一遍写代码的时候,100%的概率会将其中的判断逻辑写反。
哪怕是我提高了警惕,并在保存代码之前尝试将逻辑颠倒过来写,仍然还是写错。
#11 getAttribute()
这毫无疑问是所有元素方法中最没用的一个,但有一个场景除外。
你是否记得,我在本文的开头部分曾提到,对象的属性 property 通常也会映射到它的特性 attribute 中(我在上文中特别用粗体强调了这一点,注意不是斜体)?
但在某一个场景中,这种假设并不成立,这就是某个元素的 href
特性,例如 Cat
。
调用 el.href
不会返回 /animals/cat
,这可能与你的猜测不符。原因在于
元素实现了 HTMLHyperlinkElementUtils接口,该接口提供了一系列辅助属性,例如 prototol
与 hash
等等,以展现与链接的目标相关的值。
href
就是其中一个实用的属性,它将返回完整的 URL,并去掉无用的空格,而不是返回在特性中所指定的相对 URL。
这样一来,如果你需要获取 href
特性中的字符串字面值,就只能使用 el.getAttribute('href')
方法了。
12 dialog 元素的三大法宝
是一个相对较新的元素,它带来了两个还算能用的方法,和一个非常棒的方法。其中show()
和 close()
方法的功能与你所想象的一样,我感觉还算可以。
而 showModal()
方法能够将
元素显示在页面的顶层,居中对齐,这正是所期望的模态窗口行为。你无需指定 z-index
,或者手动添加一个灰色的背景,也不需要监听 esc 按键以关闭此窗口。浏览器能够理解模态窗口的工作方式,并自动完成你所期望的行为。
这真是太棒了。
13 forEach()
某些情况下,当你获取到一个元素列表的引用时,可以通过 forEach()
方法进行迭代式调用。
用 for()
进行循环已经是 2014 年代的老古董了。
假设你需要记录页面中所有链接的 URL,可以输入以下代码,只要你不介意看到报错。
document.getElementsByTagName('a').forEach(el ==> {
console.log(el.href);
});
也可以这么做:
document.querySelectorAll('a').forEach(el ==> {
console.log(el.href);
});
问题出在 getElementsByTagName
与其他类似的 get… 方法返回的是一个 HTMLCollection
接口,而 querySelectorAll
返回的是一个 NodeList
接口。
而 NodeList
接口为我们提供了 forEach()
方法(此外还包括 keys()
、values()
,和 entries()
等方法 )。
理想的情况下,最好是每个方法都只返回简单的数组,而不是返回一些类似数组的对象。不过别担心,ECMA 大神为我们提供了 Array.from()
方法,它能够把所有这些类数组对象转化为一个真正的数组。
所以,这样的代码就能够正常工作:
Array.from(document.getElementsByTagName('a')).forEach(el ==> {
console.log(el.href);
});
奖励关卡:创建了一个数组之后,你就能够对其使用 map()
、filter()
和 reduce()
以及其他各种数组方法了。打个比方,先不管目的是什么,总之你可以按以下方式返回所有外部链接的数组:
Array.from(document.querySelectorAll('a'))
.map(el => el.origin)
.filter(origin => origin !== document.origin)
.filter(Boolean);
我最喜欢的一个方法是 .filter(Boolean)
,它肯定会给将来的我在调试问题时带来无穷的烦恼,哈哈。
14 表单
或许你已经知道,
有一个 submit()
方法。但或许你不知道表单还有一个 reset()
方法,而且当你需要对表单元素进行验证时,还可以调用 reportValidity()
方法。
此外,你也可以通过对表单的 elements
属性加上元素的 name
特性 的方式调用它的属性。打个比方,myFormEl.elements.email
将返回属于某个
中的
元素(‘属于’,并不代表它一定是一个‘子元素’)。
好吧,其实刚才我是骗你的。elements
并不会返回一个元素列表,而是返回一个控件列表(显然它不是一个数组,因为没必要这么做)。
举例来说:假设你有三个单选按钮,每个都有相同的名称 animal
,那么 formEl.elements.animal
将返回一个单选按钮集的引用(一个控件,三个元素)。
而 formEl.elements.animal.value
将返回所选中的单选按钮的值。
这种语法看起来非常古怪,让我们来分解一下看看:formEl
是一个元素,elements
则对应 HTMLFormControlsCollection 接口,这并非一个真正的数组,其中的每一项内容也未必代表一个 HTML 元素。animal
是多个单选按钮的集合,只是因为他们具有相同的 name
特性才聚集在一起(RadioNodeList 接口就是为此而生的),而 value
则返回该集合中所选中的那个单选按钮的 value
特性。
非常直观,嗯……
15 select()
感谢你耐心阅读本文,希望本文能为你带来一些新知识,给你的工作带来实际的用途。
你可能感兴趣的:(深入15个HTML元素方法,你见过吗?)
Nginx Hard模式
西木风落
中间组件 Nginx Nginx配置详解 Nginx配置优化 Nginx面试hard
一、Nginx简介1.Nginx概述Nginx是一个免费、开源、高性能、轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器。其特点是能支持高并发请求处理,并且占用较少的内存资源,提供稳定的、丰富的模块库,有很高的配置灵活性。目前,几乎所有的web项目,都配有Nginx。Nginx由内核和一系列模块组成,内核提供Web服务的基本功能,启用网路协议、提供运行环境、创建连
劳动使我快乐(四上)
宁静与幸福
通过我的努力终于可以和奶奶去打扫小区了!奶奶先带我到了二十三楼-顶楼,一开始我还有点恐高,但过了一会儿就好多了,最后根本不怕了,这才让我安心了!这时奶奶说:“我来擦玻璃门,你来擦窗户。”我想:“简单,不就是擦窗户嘛!我一定会擦干净的!”于是我就开始了,首先用喷雾喷一喷,然后刮刀刮一刮。咦!怎么回事?上面怎么还有泡沫?奶奶笑道:“傻孩子,像你这样左边一下,右边一下,上一下,下面一下,能擦干净才怪!要
《知否》原著:盛老太太厌恶林噙霜不因她暗中苟且,而是因一番话
橙橙读书
图文|源自电视剧《知否》,侵删版权|文章为原创,搬运必究看过《知否》的人,都知道盛老太太是个厉害的角色。她是勇毅侯府独女,下嫁到盛家,在盛老太爷过世后,独自抚养庶子成家立业。为此,盛老太太素有贤名在外。可她年轻时,为了替过世的亲儿子报仇,当众整治了盛老太爷的得宠小妾。如此爱憎分明的人,为什么能容忍林噙霜在盛家横行二十年?起初看剧时不是很理解,但看完原著后,才明白盛老太太厌恶林噙霜,并不是因为她与盛
人在单位,要是你有这几个举动,相信你一辈子都只能身处“底层”
舒山有鹿
职场,那是每个人都避免不了的话题。你要谋生,那么你就要去给老板打工;你要成家立业,那你最基本的就是要找到工作;你要过上好日子,那你还是要去混职场。身为一个打工人,相信我们最期望的,应该就是早日升职加薪。可是,在这复杂的时代当中,升职加薪听起来很平常,可要想实现这个目标,那是很难的。你会发现,你的老板就动动嘴皮子,下面的员工就得拼死拼活为他干活;你会发现,你的老板总是提拔那些不怎么优秀的摸鱼者,却把
有一种尊重 叫收到请回复
Naa033
平日里最讨厌的就是:给自己熟悉的人打电话若干次或者发信息很多条,犹如石沉大海,杳无音讯。个人一直认为,这样的行为表现确实有失个人素养。而如今是全民手机时代,微信24小时登录,可以说,没有收不到的消息,只有不想回复的人。收到他人的消息,能否及时回复,是考验人品的最佳利器。最好的关系不是随叫随到,每天都聊,而是我发了消息,你看到了自然会回复。秒回,是这个时代最不可或缺的安全感,也是对他人最大的尊敬。收
林大壮与林芳芳(3)
冬日暖阳one
3、有人喜欢林芳芳15岁以前的日子,脑子里都只有一根弦,没有花花肠子,没有咕噜咕噜打转的念头。林芳芳和林大壮一直包揽着小镇的一二名,不相上下。白白静静林大壮被黄土高原的日光晒的健壮而黝黑。棕色的林芳芳却婷婷玉立了起来,也变得爱美,居然白了许多。县里的高中和镇上的学校比起来,着实气派。林大壮和林芳芳的班级隔了一层教学楼。林芳芳第一次收到了小纸条。“你的眼睛会说话。——尹川”林芳芳拿着纸条去找林大壮,
黑与白
笑笑小郎君
四月春风流淌,鲜花流淌在我心的湖上夜夜流淌夜夜有蝴蝶朝我走来含情的走来轻轻地停在我的额头生出许多的小蝴蝶没有比夜晚更加浪漫的夜晚我是夜里唯一放荡的浪子我要和这夜里的一切偷情和一只蝴蝶,又或者贴着我皮肤的黑融入我眸子里的,都属于我的眼睛那些比黑暗还遥远的,远在光明的我也爱你你们都属于我的心可是我只有一个我我无法成为你们共同的丈夫我选择了黑暗我也将像所有负心汉一样我也将成为一个自己也讨厌的人唯你,安静
《雨过天晴》——你的声音永远都是最温暖的所在
南宫小千
今天的天气用这首歌来形容再合适不过。“雨过~应该就会天晴吧~一知道痛就应该珍惜了啊,恋爱中~有人被打垮~有人长大~你还~爱我吗?你爱我吗?”歌曲一开头的那段清唱真的是让人爱得不要不要的。品冠的声音又温暖又柔和,就好像是一束阳光穿透云层,越过繁茂的枝叶,洒落在头顶上。这也是我当初去KTV的必点曲目。都好多年没去过KTV了,当年还是很fashion的一件事呢。现在据说北京的钱柜也就剩下一家店了。也好,
去文昌石头公园,别忘这个海湾,会让你惊声尖叫的
小酒馆里的故事
【温馨提示:耐心、耐心看,先从露营的事情说起,再到大小澳海湾。】其实,作为一个岛民来说,在海南旅游一般都不太爱去旅游景点。如果没有旅游景点的市县,就更不要说去了。说起我们的旅游乐趣,一般都是走户外了,去旅游不去的地方,寻找别样的乐趣和心情。当然,户外活动都是翻山涉水之类的。在海南,海滩徒步或者海岸沿线的丛林穿越,是我们最喜欢的方式啦。在这次去文昌石头公园周边的露营就是这样。文昌是一个文化底蕴很浓郁
复盘2019-09-20
飞翔的毛毛虫lh
昨日计划:1.学审核的知识,审核两个小时√(心得:审核规范里只是关于审核的基本规则,具体详细的还需要自己摸索。)2.锻炼一次,公园健走半小时;仰卧起坐30个3.跟进PDCA的进程,催促各个环节的进度。√4.完成每日复盘√5.每日听书10分钟打卡√6.每日读书10分钟√(读书半个小时)7.背单词百词斩8.给二子做早教,每天至少讲一本书,√学数数1-10,√识字卡片2个,(大、人、小)五官的英文单词,
海尔空调质量怎么样?海尔空调怎么样哪个系列哪款更值得买?
全网优惠分享
海尔空调应该算是除格力之外国产品牌扛把子级别的品牌了,同样也是畅销海外。尤其是海尔空调近年来在业内的风评也是极佳,有着很多热门型号,为不同消费者提供良好的服务。只不过很多新人用户可能对于如何选择具体的海尔空调型号有所疑惑,不敢轻易入手。那么,海尔空调质量怎么样值得买吗?选购空调的时候有哪些问题点需要注意?下面,笔者通过使用效果给大家揭秘真相!入手空调需要注意的问题点问题点1、外机品质。很多用户在选
跟可心在一起的第十八天
海子的另一种灵魂
早上可心来接我特别开心,虽然腿有些疼,但是见到可心就特别开心,阳光正好,牵着你也正好。享受我们在一起的每一天,每一个小时,每一分钟,每一秒,对于我来说都有着美好的回忆,快考研了,要好好加油哦,可心,无论你做什么我都陪着你的,因为我来了就从来没想过走,因为一切都是命中注定。永远爱你,照顾你。爱你哦,媳妇儿,超爱的那种哦。大兔子和小兔子一起吃饭.小兔子捧着饭碗,对大兔子说:"想你.""我不就在你身边吗
写给自己的情书0312
清心阁
亲爱的娜娜你好!自从我第一眼看见你,我就爱上你了。爱你的热情开朗,爱你的活泼可爱,爱你的顽皮任性,爱你的聪明伶俐。当然也爱你的小脾气。你发脾气的样子可爱极了,像极了一个小孩,看得人心疼,疼你都来不及,怎么会恨你?有时候你又像一位大家闺秀,那么懂礼貌,那么贤惠,那么善良,关心别人。完全不考虑自己。有时候你又像一条缺爱的流浪狗,四处乞讨别人的爱,楚楚可怜。可是封闭的心感受不到一点点的爱,内心冰冷地蜷缩
"在老去的路上寻爱" 诗歌
晨妤儿
文|晨妤儿图片发自App每闭一次眼,睁开一次就会又老了一岁每做一次梦就会失忆在苏醒和沉睡里就迈向了新生命我想不睡觉了,永远不老过了18岁是19岁我还是又回到18岁年轮里我的爸爸,妈妈就会永远陪伴我我也不会学懂事理智也不会升华我是爸爸妈妈永远的小棉袄可是你,我为何而来世上在人间荡漾着,彷徨着或许我们来世是来报父母恩的寻"爱"梦,理想的生活向往人间的路,想下凡来遇见良人又或许你,我都是在排队等着孟婆给
2022-06-25
柚子坚强
很多人觉得,升职加薪,挣钱买房子,结婚生孩子,就是自己变好的标志。但当你真正做到这一切时,却发现只能幸福一阵子,你依然有更多难以解决的困扰。其实,我们之所以痛苦难受,是因为离内心的那个理想的自己越来越远。“你还没有明确的认识自己,而只是依赖着过去的经验和记忆,在无意识中形成的模式中重复的生活着。”你依赖他人对你的期待,社会对你的要求,甚至是年龄推着你往前走。当你感到痛苦不堪,想要跳出目前的生活状态
十二月第一天
简九月
制定显眼计划,明确工作目标我们习惯在新年开始的时候,写下一年的计划,例如今年我要读完10本书。而等到年末复盘的时候,买来的书甚至都没有翻过。做计划并没有错,关键在于你制定的计划是否具体,是否有可执行性。作家路遥在写小说《平凡的世界》的时候也给自己制定了严格的计划。他先是列了一个写作大纲,定出一个大概的轮廓。然后,分解每天要完成的部分,并在后面标注好完成日期。看着墙上的工作日期表一天天划掉,他的写作
每天都要比昨天棒!
能_fac6
每个不曾起舞的日子都是对生命的辜负,我一直觉得我的大学很无聊一点不充实也什么都没学到主要是已经无心学习了!我特别想学会英语,我高考都是吃的英语的亏,我想英语说不定以后还能是我的谋生技能……下午去打羽毛球打了好久好久,那种迎面的风吹过来你身上有一点点汗的感觉真的无敌舒服,就是夏天的味道,室友又去湖边跑步了,我坐在湖边的长椅上,水在餐厅的灯光下愈发耀眼,我坐在那里有种岁月静好的感觉啊美好的时光不想让它
2022-06-02
山东九斗教育
山东九斗教育:消防员考消防工程师有优势吗消防员考消防工程师有优势,消防员对行业的知识有了一定的了解,在备考消防工程师时,会更容易理解专业知识的含义,相对更容易通过考试。消防员和消防工程师工作界面有区别,但也是相辅相成的。作为专职队员如果无法晋升到管理层,那么如果还要在消防行业里打拼的话,成为消防工程师为以后的出路多一个选择。消防员考消防工程师证在考试通过上占据一定的优势,消防员对行业的知识有了一定
卡尔夫
风和日丽王秀波
1954年,卡尔夫参加洛温菲尔德在苏黎世的讨论,深受启发,希望寻找一种能够有效帮助儿童心理分析的方法与途径。于是,卡尔夫决定去伦敦跟随洛温菲尔德学习其“游戏王国技术”。1956年,完成了苏黎世荣格研究院所有课程与要求的卡尔夫,由于没有大学文凭,不能获得荣格心理分析家的资格。于是,卡尔夫写信给洛温菲尔德,开始了她的“游戏王国技术”的学习。在此期间,卡尔夫还从师于维尼考特一段时间。英国的荣格心理分析家
js的书写位置和css的书写位置的区别?为什么要这样写?
李是啥也不会
javascript css 开发语言
JavaScript和CSS的书写位置有以下区别:CSS通常写在标签中,或者在外部样式表文件中()。CSS主要用于控制页面的视觉样式和布局,通常在HTML文件的部分引入,以确保在页面渲染时样式已经加载完毕,从而避免样式闪烁。JavaScript通常写在标签中,或者在外部脚本文件中()。JavaScript用于添加页面的动态行为和交互。一般建议将JavaScript放在HTML文件的末尾(标签之前)
淘宝内部优惠券福利群,优惠券群怎么才能做起来?
高省APP大九
淘宝内部优惠券福利群是一个集结了众多购物爱好者,以分享和领取淘宝内部优惠券为主要活动的社群。通过搭建这样的群,群成员可以享受到更多独家优惠,而群主也能从中获得一定的收益。高省APP作为一个集成了各大电商平台优惠券的导购平台,为淘宝内部优惠券福利群提供了丰富的优惠券资源。那么,淘宝内部优惠券福利群如何才能做起来并持续吸引用户呢?高省APP官网邀请码110000一、明确群定位与目标用户首先,要明确这个
面试前夕
枯皮囊
明天面试,今天我们一行人坐火车去目的地宾馆,晚上吃了美美的一餐,价格稍贵,但是很值得,味美量多,挺喜欢的。希望明天运气爆棚,面试顺顺利利,并且抽到一个我擅长的题目。各位亲们,晚安喽,愉快的一天。我走的很慢,但从不后退。图片发自App
5月6日碎碎念
莉萍LP
今天立夏,孩子们记得今天是妈妈可以给他们买冰棒的日子。前一段时间里有几天很热,俩个孩子看见别人吃冰棒,他们也想吃,于是我说到只有到了夏天才可以吃,褀说,那立夏那天就可以吃了,我也同意,于是俩孩子盼星星盼月亮盼立夏快点到来。有时褀还说夏天最大的优点就是我们可以吃冰棒,说完做出流口水的动作,看得出,他们很喜欢冰棒的味道。今天是立夏,可是今天的天气却比较冷,最高才20度,还下着雨,空气里更是湿润,一点都
渗透测试的了解
锅盖'awa'
网络安全小白之路 安全性测试 安全
文章目录概述一、渗透测试分类1.黑盒测试/外部测试2.白盒测试/内部测试3.灰盒测试/组合测试二、渗透测试-目标分类1、主机操作系统渗透2、数据库系统渗透3、应用系统渗透4、网络设备渗透三、渗透测试过程(七个阶段)1.前期交互阶段(Pre-EngagementInteraction)2.情报搜集阶段(InformationGathering)3.威胁建模阶段(ThreatModeling)4.漏洞
《买书记历》读书笔记
歪嘴文说
《买书记历》本书以作者及他身边爱书人,准确说是“爱淘书”的人,来记叙他们当年的“淘书”经历。淘旧书,缺本,古书,罕书,有价值的。类似淘古董,转手可出高价或自我珍藏。因书过厚,后部多为跳看。对其中一段记事细看了,知道还有这么一种事。一个人打作者电话说有一批书来看一下,具体数量不好说有60吨吧,作者去看后爬书堆上,看有没有珍品,结果都是杂志。问价,要5千一顿,作者当即要走,说这书卖废品也不值1千1一吨
《官场之手眼通天》秦峰胡佳芸(完结篇)全文免费阅读【笔趣阁】
海边书楼
《官场之手眼通天》秦峰胡佳芸(完结篇)全文免费阅读【笔趣阁】主角:秦峰胡佳芸简介:做官要有两颗心,一颗是责任心,一颗是良心。且看秦峰一个最偏远乡镇的基层公务员,带着这两颗心怎么在尔虞我诈的权力游戏里一步步走向权力的巅峰。可关注微信公众号【寒风书楼】去回个书号【283】,即可免费阅读【官场之手眼通天】全文!第9章你在等我吗?“听说过,那天我正好路过。”“你看到了没有去救人?”“没有。”秦峰不是个喜欢
2023-06-04
诗图佳得
七绝野鸭湖随想文/徐东光莺歌啼啭柳如弦,湖面风来水荡烟。欲采珠玑当骋目,闲凫几羽也成篇。癸卯四月十七[晨读]人的一生要走多少路,永远是个未知数;人的一生要受多少苦,没有人会告诉你。你唯一能够做到的,就是沿着自己既定的方向,一步步地走下去,接纳所有的好与不好,承担着所有的责任义务,无怨无悔地付出,心甘情愿地承受。生命是一个漫长的历程,你看不到终点,也看不到结局!拥有一颗宽容善良,充满生机的心,你就会
SpringBoot2:web开发常用功能实现及原理解析-整合EasyExcel实现Excel导入导出功能
生产队队长
Spring All excel spring boot
1、工程包结构主要是这5个Java类2、导入EasyExcel包这里同时贴出其他相关springboot的基础包org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-devtoolsruntimetrueorg.springframework.bootspring-boot-config
nacos管理springboot配置时,发生的Could not resolve placeholder两种原因
生产队队长
Spring All spring boot
IllegalArgumentException:Couldnotresolveplaceholder'xxx.xxx.xxx'invalue"${xxx.xxx.xxx}"第一种:确实缺少配置,加上对应的配置即可。第二种:这个情况,可能会迷惑很多人报错某个配置无法引用,但是,检查配置时,确实存在,已经配置好了。而且,整个yml文件也没有语法格式错误。原因:我们在解决第一个问题的时候,可能导致这个
等保测评中的关键技术挑战与应对策略
亿林数据
网络安全 等保测评
在信息安全领域,等保测评(信息安全等级保护测评)作为确保信息系统安全性的重要手段,其过程中不可避免地会遇到一系列技术挑战。这些挑战不仅考验着企业的技术实力,也对其安全管理水平提出了更高要求。本文将深入探讨等保测评中的关键技术挑战,并提出相应的应对策略。一、等保测评中的关键技术挑战1.复杂系统架构的评估难度随着信息技术的快速发展,企业信息系统的架构日益复杂,包括分布式系统、微服务架构、云计算环境等。
Nginx负载均衡
510888780
nginx 应用服务器
Nginx负载均衡一些基础知识:
nginx 的 upstream目前支持 4 种方式的分配
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比
RedHat 6.4 安装 rabbitmq
bylijinnan
erlang rabbitmq redhat
在 linux 下安装软件就是折腾,首先是测试机不能上外网要找运维开通,开通后发现测试机的 yum 不能使用于是又要配置 yum 源,最后安装 rabbitmq 时也尝试了两种方法最后才安装成功
机器版本:
[root@redhat1 rabbitmq]# lsb_release
LSB Version: :base-4.0-amd64:base-4.0-noarch:core
FilenameUtils工具类
eksliang
FilenameUtils common-io
转载请出自出处:http://eksliang.iteye.com/blog/2217081 一、概述
这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。
xml文件解析SAX
不懂事的小屁孩
xml
xml文件解析:xml文件解析有四种方式,
1.DOM生成和解析XML文档(SAX是基于事件流的解析)
2.SAX生成和解析XML文档(基于XML文档树结构的解析)
3.DOM4J生成和解析XML文档
4.JDOM生成和解析XML
本文章用第一种方法进行解析,使用android常用的DefaultHandler
import org.xml.sax.Attributes;
通过定时任务执行mysql的定期删除和新建分区,此处是按日分区
酷的飞上天空
mysql
使用python脚本作为命令脚本,linux的定时任务来每天定时执行
#!/usr/bin/python
# -*- coding: utf8 -*-
import pymysql
import datetime
import calendar
#要分区的表
table_name = 'my_table'
#连接数据库的信息
host,user,passwd,db =
如何搭建数据湖架构?听听专家的意见
蓝儿唯美
架构
Edo Interactive在几年前遇到一个大问题:公司使用交易数据来帮助零售商和餐馆进行个性化促销,但其数据仓库没有足够时间去处理所有的信用卡和借记卡交易数据
“我们要花费27小时来处理每日的数据量,”Edo主管基础设施和信息系统的高级副总裁Tim Garnto说道:“所以在2013年,我们放弃了现有的基于PostgreSQL的关系型数据库系统,使用了Hadoop集群作为公司的数
spring学习——控制反转与依赖注入
a-john
spring
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
用spool+unixshell生成文本文件的方法
aijuans
xshell
例如我们把scott.dept表生成文本文件的语句写成dept.sql,内容如下:
set pages 50000;
set lines 200;
set trims on;
set heading off;
spool /oracle_backup/log/test/dept.lst;
select deptno||','||dname||','||loc
1、基础--名词解析(OOA/OOD/OOP)
asia007
学习基础知识
OOA:Object-Oriented Analysis(面向对象分析方法)
是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)
浅谈java转成json编码格式技术
百合不是茶
json编码 java转成json编码
json编码;是一个轻量级的数据存储和传输的语言
在java中需要引入json相关的包,引包方式在工程的lib下就可以了
JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非
常适合于服务器与 JavaScript 之间的数据的交
web.xml之Spring配置(基于Spring+Struts+Ibatis)
bijian1013
java web.xml SSI spring配置
指定Spring配置文件位置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-dao-bean.xml,/WEB-INF/spring-resources.xml,
/WEB-INF/
Installing SonarQube(Fail to download libraries from server)
sunjing
Install Sonar
1. Download and unzip the SonarQube distribution
2. Starting the Web Server
The default port is "9000" and the context path is "/". These values can be changed in &l
【MongoDB学习笔记十一】Mongo副本集基本的增删查
bit1129
mongodb
一、创建复本集
假设mongod,mongo已经配置在系统路径变量上,启动三个命令行窗口,分别执行如下命令:
mongod --port 27017 --dbpath data1 --replSet rs0
mongod --port 27018 --dbpath data2 --replSet rs0
mongod --port 27019 -
Anychart图表系列二之执行Flash和HTML5渲染
白糖_
Flash
今天介绍Anychart的Flash和HTML5渲染功能
HTML5
Anychart从6.0第一个版本起,已经逐渐开始支持各种图的HTML5渲染效果了,也就是说即使你没有安装Flash插件,只要浏览器支持HTML5,也能看到Anychart的图形(不过这些是需要做一些配置的)。
这里要提醒下大家,Anychart6.0版本对HTML5的支持还不算很成熟,目前还处于
Laravel版本更新异常4.2.8-> 4.2.9 Declaration of ... CompilerEngine ... should be compa
bozch
laravel
昨天在为了把laravel升级到最新的版本,突然之间就出现了如下错误:
ErrorException thrown with message "Declaration of Illuminate\View\Engines\CompilerEngine::handleViewException() should be compatible with Illuminate\View\Eng
编程之美-NIM游戏分析-石头总数为奇数时如何保证先动手者必胜
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class Nim {
/**编程之美 NIM游戏分析
问题:
有N块石头和两个玩家A和B,玩家A先将石头随机分成若干堆,然后按照BABA...的顺序不断轮流取石头,
能将剩下的石头一次取光的玩家获胜,每次取石头时,每个玩家只能从若干堆石头中任选一堆,
lunce创建索引及简单查询
chengxuyuancsdn
查询 创建索引 lunce
import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Docume
[IT与投资]坚持独立自主的研究核心技术
comsci
it
和别人合作开发某项产品....如果互相之间的技术水平不同,那么这种合作很难进行,一般都会成为强者控制弱者的方法和手段.....
所以弱者,在遇到技术难题的时候,最好不要一开始就去寻求强者的帮助,因为在我们这颗星球上,生物都有一种控制其
flashback transaction闪回事务查询
daizj
oracle sql 闪回事务
闪回事务查询有别于闪回查询的特点有以下3个:
(1)其正常工作不但需要利用撤销数据,还需要事先启用最小补充日志。
(2)返回的结果不是以前的“旧”数据,而是能够将当前数据修改为以前的样子的撤销SQL(Undo SQL)语句。
(3)集中地在名为flashback_transaction_query表上查询,而不是在各个表上通过“as of”或“vers
Java I/O之FilenameFilter类列举出指定路径下某个扩展名的文件
游其是你
FilenameFilter
这是一个FilenameFilter类用法的例子,实现的列举出“c:\\folder“路径下所有以“.jpg”扩展名的文件。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
C语言学习五函数,函数的前置声明以及如何在软件开发中合理的设计函数来解决实际问题
dcj3sjt126com
c
# include <stdio.h>
int f(void) //括号中的void表示该函数不能接受数据,int表示返回的类型为int类型
{
return 10; //向主调函数返回10
}
void g(void) //函数名前面的void表示该函数没有返回值
{
//return 10; //error 与第8行行首的void相矛盾
}
in
今天在测试环境使用yum安装,遇到一个问题: Error: Cannot retrieve metalink for repository: epel. Pl
dcj3sjt126com
centos
今天在测试环境使用yum安装,遇到一个问题:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。即可。
&n
单例模式
shuizhaosi888
单例模式
单例模式 懒汉式
public class RunMain {
/**
* 私有构造
*/
private RunMain() {
}
/**
* 内部类,用于占位,只有
*/
private static class SingletonRunMain {
priv
Spring Security(09)——Filter
234390216
Spring Security
Filter
目录
1.1 Filter顺序
1.2 添加Filter到FilterChain
1.3 DelegatingFilterProxy
1.4 FilterChainProxy
1.5
公司项目NODEJS实践0.1
逐行分析JS源代码
mongodb nginx ubuntu nodejs
一、前言
前端如何独立用nodeJs实现一个简单的注册、登录功能,是不是只用nodejs+sql就可以了?其实是可以实现,但离实际应用还有距离,那要怎么做才是实际可用的。
网上有很多nod
java.lang.Math
liuhaibo_ljf
java Math lang
System.out.println(Math.PI);
System.out.println(Math.abs(1.2));
System.out.println(Math.abs(1.2));
System.out.println(Math.abs(1));
System.out.println(Math.abs(111111111));
System.out.println(Mat
linux下时间同步
nonobaba
ntp
今天在linux下做hbase集群的时候,发现hmaster启动成功了,但是用hbase命令进入shell的时候报了一个错误 PleaseHoldException: Master is initializing,查看了日志,大致意思是说master和slave时间不同步,没办法,只好找一种手动同步一下,后来发现一共部署了10来台机器,手动同步偏差又比较大,所以还是从网上找现成的解决方
ZooKeeper3.4.6的集群部署
roadrunners
zookeeper 集群 部署
ZooKeeper是Apache的一个开源项目,在分布式服务中应用比较广泛。它主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步、集群管理、配置文件管理、同步锁、队列等。这里主要讲集群中ZooKeeper的部署。
1、准备工作
我们准备3台机器做ZooKeeper集群,分别在3台机器上创建ZooKeeper需要的目录。
数据存储目录
Java高效读取大文件
tomcat_oracle
java
读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法: Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new File(path)); 这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致
微信支付api返回的xml转换为Map的方法
xu3508620
xml map 微信api
举例如下:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><