$(document).on(‘ajaxBeforeSend’, functio(e,xhr,options) {
//页面上的每个ajax请求之前都会触发
//可编辑ajax()和xhr对象
//通过返回false取消此操作
}
(2). 如果请求的context 是一个dom节点,那么在该dom节点中触发,然后在dom中冒泡。
contenxt用于亩ajax相关回调函数的上下文(this指向)
$.ajax({
//请求方式
type:'GET‘,
//请求地址
url:‘/projects’,
//请求数据
data:{ name: ‘zepto.js’},
//期待服务器返回类型
dataType: ‘json’,
//请求超时时间
timeout: 3000,
//当前请求的this指向为body
context: $(‘body’)
//成功后的回调
success: function(data) {
{‘project’:{‘id’: 41, ‘html’: ‘
//将返回的json对象(html)附加到上下文对象
this.append(data.project.html)
}
//请求失败后的回调
error: function(xhr,type) {
alert(‘error’)
}
})
//假定请求方式为post
$.ajax({
type:‘POST’,
url:‘/’,
data:JSON.Stringfy({‘name’:‘zepto.js’})
//发送请求类型
contentType:‘appliction/json’
})
(3).ajaxSettings
包含ajax请求的默认设置对象
(4).$.get(‘https://api.github.com/users/momo-0902’,function(response) {
$(document.body).append(response)
})
!提示错误,Failed to execute ‘insertBefore’ on ‘Node’:parameter 1 is not of type ‘Node’.
错误原因:无法在“Node”上执行“insertBefore”:参数1不是“Node”类型。
请求回来的结果是一个json字符串,并不是一个Node类型
* append在每个匹配的元素末尾插入内容,内容可为html字符串,dom节点,或者节点组成的数组
将 $(document.body).append(response)改为console.log(response)可看请求成功的数据
$(document.body).append(‘
- hahaha
- ’)可增加一个li节点 到body中。
(5).$param 序列化一个对象
(6).$.post(url,[data],function(data,status,xhr){},[dataType])
$.post(‘/creat’,
//serialize()在ajax post请求中将用作提交表单值编译成URL编码的字符串。
$("#some_form’).serialize(),
function(){
})
(7).load(url, function(data, status, xhr){ … })载入远程 html内容到当前集合中
$("#some_element“).load(‘/foo.html #bar’) 匹配id为bar的html内容
(8).ex
$(“btn”).click(function() {
$.ajax({
url:‘user’,
type:‘post’,
data:("userName:KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲userName").val(…(“passWord”).val()),
async:false,
success: functoin() {
if(data == 0) {
alert(‘用户名错误’)
}else if(data == 2) {
alert(‘密码错误’)
}else {
}
}
})
})
5.zepto 事件
(1).$Event(type,[properties])
创建并初始化一个指定的dom事件,如果给定properties对象,使用它来扩展出新的事件对象。默认情况下,事件被设置为冒泡方式;这个可以通过设置bubbles为false来关闭。
( 2 ).$proxy
接受一个函数,返回一个新函数‘
并且这个新函数始终保持了特定的上下文(context)语境,新函数中this指向context参数。另外一种形式,原始的function是从上下文(context)对象的特定属性读取。
( 3 ) .off 移除通过on添加的事件
( 4 ).on为元素添加事件,事件以空格隔开
( 5 ).one为元素绑定一次性事件
( 6).trigger 在元素集合上触发指定事件
( 7 ).triggerHandler 在指定元素上触发指定事件
6.抓包工具
抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全,与数据截取等。
chrome开发者工具--network选项
点击工具条上方小红点record network log,可以记录下整个访问过程中所有抓包结果,否则只记录当前页面的抓包结果。
可查看网页相关数据信息,网址,接口请求状态,js,css,image等加载状态
点击网址可看到有以下几个选项,Headers,Preview,Response,Cookies,Timing
在Headers中包括请求地址,请求方式,请求头,请求方式,响应头,响应内容等
在Response中可单独查看响应状态码的返回,返回数据等
在Timing中可查看时间等
2.Weinre全称WebINspector Remote(翻译过来是远程web检查器),可在PC上直接调试运行在移动端的远程页面,
weinre工作原理
Debug客户端(client):本地的web检查器,远程调试客户端
Debug服务端(agent):本地的HTTPServer,为Debug客户端与Debug目标页面建立通信
Debug目标页面:被调试的目标页面,页面已嵌入weinre的远程js
客户端、目标页面与Debug服务端之间使用XMLHttpRequest (XHR)进行HTTP通信,你通常的使用情形是将Debug客户端与服务端搭建在桌面开发环境,Debug目标页面放在移动设备。
安装方式 :npm install-g weinre
过程中尝试用yarn install 安装,但因为yarn的安装位置问题,导致weinre不可用,所以还是建议用npm 安装
步骤
(1) 在本地开启监听服务器,ipconfig查看本地ip
weinre --boundHost [hostname | ip address |-all-] --httpPort [port]
weinre -boundHost 192.168.2.45
(2)可用weinre --httpPort 8081 --boundHost 192.268.2.45
(3)访问weinre及在页面上调用
(4)在调式的页面中加入远程调式所需要的JS代码
(5)点击第一个链接
(6)进入此页面,如果连接成功,网址变成绿色,按钮显示高亮
(7)可下载草料二维码,将浏览器地址的127.0.0.1改为192.168.2.45,端口不变,此端口与weinre服务器端口不一样,此端口是访问页面的端口
(8)多用户调试
改变中的id"#anonymous"为自己的id(例#product),
然后访问网址从http://192.168.2.45:8080/client/#anonymous改为http://192.168.2.45:8080/client/#product即可
注意:每次开机都有新的ip地址,这是页面中标签中的Ip地址与页面访问ip地址也要做相应更改。
7.chrome开发者工具
1、点击文件中相应代码的行数选择断点,在右侧Breakpoints中有所有打过的断点列表,点击对应checkout的第一行取消该断点,点击下一行,直接跳到该代码处。
2、刷新或者点击页面开始执行断点也调试。
3、6个按钮
(1)
pause script excutio 【单步执行,在断点处暂停,等待调试】暂时后变为
Resume script excution【继续执行】快捷键 F8或者ctrl + \
(2)Step over next function call【单步跳过】跳到下一个断点,快捷键F10或者ctrl+`
在69行和70行分别设置两个断点,先执行69行断点,在jquery中寻找源码后继续执行下一个断点,即alert(‘123’)
如果没有断点了就继续执行完这个click函数,执行$(“#txt”).val(txt);然后执行if-else分支,但不进入if-else函数中
(3)Step into next function call 【单步进入】进入函数内部调试,快捷键【F11 或者 Ctrl + ;】
继续点击
执行下一步,
直到跳出if条件语句的判断
(4)
Step out of current function 【单步跳出】,跳出当前断点的函数快捷键【Shift + F11 或者 Ctrl + Shift + ;】
(5)
使所有断点临时失效
(6)
Don’t Pause on exceptions:不要在表达式处暂停,
pause on caught exceptions 当抛出错误的时候暂停
(7) 在element处右击dom元素,设置此dom为断点
*子节点变化断点 (subtree modifications)
主要针对子节点增加、删除以及交换顺序等操作,但子节点进行属性修改和内容修改并不会触发断点。
*节点属性断点 (attributes modifications)
*节点移除断点 (node removal)
( 8 ) xhr断点 异步请求时触发断点
(9)事件断点 在所选事件发生时触发断点
(10)js source断点 执行到此断点时会一步步看到当前作用域中所有变量的值
8.Zepto动画
zepto动画需要引入fx模块,用css动画实现
animiate(动画对象,花费时间,动画类型,动画完成时的回调函数)
ex1:
$(“#banner ul”).animate({marginLeft:“-800px”},600, function () {
$(“#banner ul”).css(‘marginLeft’,‘0px’);
});
ex2:
$(‘some_element’).animate({
opacity: 0.25,
left: ‘50px’,
color: ‘#000’,
rotateZ: ‘45deg’,
translated3d: ‘0,10px,0’,
},500,
‘ease-out’)
})
css3动画整理如下
在css3中创建动画,需要@keyframes规则,在keyframes中定义新样式为动画效果
1、@keyframes规则
//从动画开始到结束使用关键词from to
@keyframesmyfirst {
form{background:red}
to{background: yellow}
}
//使用百分比来规定变化发生的时间
@keyframes myfirst {
0% {background: red}
25%{background: yellow}
50%{background: blue}
100%{background: green}
}
2、animat属性
aiimation: animate- name animate-duration animate- timing-function animate-delay
名字 花费时间 速度曲线 延迟
animate-iteration-count animate-direction
播放次数是否反向播放
绑定@keyframes中的动画到元素的animate属性中
div{
ainmation: myfirst 5s
//在此注意要加上浏览器兼容属性,此处省略
}
3.其余动画属性
animation-play-state animation-fill-mode
动画是否正在运行或暂停 对象动画时间之外的状态
9.DOM元素的增删改查
*.appendChild将添加的节点做为元素最后一个子节点
1.增加节点(例添加一个文本节点)
(1)//创建文本节点
var newTextNode = document.createTextNode(“这是一个新的节点”)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
PPO等大厂,18年进入阿里一直到现在。**
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-KDZC7hBH-1712596377178)]
[外链图片转存中…(img-kkgNrBaj-1712596377179)]
[外链图片转存中…(img-WtCBSFgr-1712596377180)]
[外链图片转存中…(img-w3HYCX1n-1712596377180)]
[外链图片转存中…(img-koHGvvpw-1712596377181)]
[外链图片转存中…(img-4bl5hmEZ-1712596377182)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-MqHSkqEd-1712596377182)]最后
前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档
[外链图片转存中…(img-h7VqmwOo-1712596377183)]
[外链图片转存中…(img-Kf4siOWT-1712596377184)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-Kw6lv61l-1712596377184)]