JS、AJAX、jQuery学习笔记

本文主要介绍了JavaScript的基础知识,包括变量、对象和事件,然后深入讲解了JSP的工作原理和四个域对象。接着讨论了Cookie和Session的用途及特性。文章重点讲述了防止表单重复提交的令牌机制,并对JSON数据交换格式进行了说明。最后,详细阐述了AJAX的基本概念,包括XMLHttpRequest对象的使用,以及jQuery如何简化AJAX操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScrip

  • 声明变量

    var temp;
    temp =1;
    

    是一个弱类型语言,没有类型

  • 声明对象

    var obj = {
    // 这里用,来表示属性
    	lastName : "zhangsan",
    	age : 18
    };
    alert(obj.lastName)
    obj.email = "aaaa@qq.com"; //如果这里没有事先写这个属性,那么这样直接添加就可以
    
  • 声明方法

    function hello(){
    
    }
    //调用
    hello()
    
    var hello = function(){
    	
    };
    hello();
    
  • 事件:用户和浏览器的交互行为

window.onload = function(){
	文档加载完成:(页面里面所有的内容都是显示成功)
}
$(function()){
	//文档加载完成(dom准备就绪)
}
  • 常用事件:

    • 如何给一个元素绑定上事件
    <a href = "hello" id = "aEle"> 你好 </a>
    var aEle = document.getElementById("aEle");
    aEke.onclick = function(){
    	alert("你好");
    	//取消默认行为:  页面就不跳转了  因为是<a href> 标签,是一个链接会跳转
    	return false;
    }
    
  • Jquery

    jQuery(js 库) ----- js

  • 重点:

    • 选择器
    • 文档操作(对dom的增删改查)
    • 属性操作
    #id        :$("#btn01")   找到一个id是指定值的标签
    element    :$("a")        找到所有的a标签
    .class     :$(".mini")    找到所有class为mini的元素
    *          :$("*")        找到所有的元素
    选择器
    selector1,selector2,selectorN : $("#btn01","#btn02",".big","form","#a01 *")
                                表示找到id为btn01 和btn02的元素; 以及class为big的元							素,以及所有form表单,以及id为a01 下的所有所属
     层级
     ancestor  descendant : 找后代
     parent > child       : 找子元素  $("a > #btn01"):找到a标签下id为btn01的子元素
     prev   + next        : 找下一个兄弟  $("#btn01 + .mini"):找到id为btn01的下一个						同级元素,而且这个元素的class是mini
     prev ~ siblings      : 找所有的同辈兄弟  $("#deleBtn01 ~a"):找到id为delteBtn01					  的所有兄弟元素,但必须是a标签
     
    

JSP

  • 原理
    • 向服务器发送请求 http://localhost:8080/4.PocStore/index.jsp
    • JspServlet 找到index.jsp这个文件,第一次请求,将其翻译成index_jsp.java,编译成index_jsp.class ; 以后每次直接就去找到这个class即可
    • 利用反射调用class文件中 jspService的方法 ;
    • 将jsp文件中的数据写出到浏览器,用户就可以看到了
  • 4个域对象
    • pageContext request session application
    • 共享数据的范围:有小到大 pageContext request session application
    • pageContext : 当前页面共享数据在当前页面能取出来
    • request : 同一次请求的共享数据,同一请求期间可以共享(转发,重定向是两次不同的请求) 一旦response了,响应就完成了,当次请求就结束了
    • session : 同一次会话期间数据共享(浏览器打开开始会话,浏览器关闭结束会话)
    • application :同一个web中共享数据,只要是服务器不关闭都可以使用

Cookie

浏览器端保存少量数据的一种技术

  • 特点
    • 保存少量
    • 都是纯文本
    • 保存当前网站的cookie,每次访问这个网站都会携带这个cookie,
      • 假如说我访问hello.html中携带了cookie,那么我又访问index.html页面,同样还是会携带cookie
    • 默认不支持中文
  • cookie有效时间:
    • 默认:会话期间有效(只要是浏览器不关)
    • 修改cookie 只能同名覆盖

Session

服务器端保存当前会话大量数据的一种技术

可以在同一个会话期间共享

session 的实质就是一个map , 100个会话就有100个map,每次创建map的时候,这个map有唯一一个标志(JESSSIONID ; 会话id)

利用浏览器每次访问会带上她所有的cookie

服务器只需要创建一块能保存数据的map,给这个map一个唯一标志(JESSIONID):创建好以后命令浏览器保存这个map的标志,以后浏览器访问就会带上这个map标志,服务器就按照标志找到这个map,取出这个map中的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WXaP76b-1579600580666)(C:\Users\你大爷\AppData\Roaming\Typora\typora-user-images\image-20200121132722509.png)]

令牌机制

  • f5将之前的请求再次发出去,表单重复提交

引出

  • 每次提交请求的时候验证提交的是否正确

令牌机制

虎符:

  • 访问页面的时候,生成一个令牌
  • 第一次访问页面生成一个令牌,只要不刷新页面,f5重新发送上一次请求,令牌不会变化,servlet第一次收到令牌进行比对,比对成功进行更改或删除
  • 下一次直接去刷新发送上次的请求,由于带来的令牌还是上次的,而这个令牌已经失效了
  • 应用场景
    • 防止表单重复提交
    • 验证码

Json

  • JSON(javaScript Object Notation):(js对象表示法) :是一种轻量级(和xml相比很轻量)的数据交换格式
{key:value,key:value};
value: 可以有很多种
	1)基本类型 
	2)数组 []表示
	   {lastname:"李四" , books: [value1,value2]}
    3) 对象  {}来表示
var student = {lastname:"张三" ,age : 18, car: {pp : "宝马",price : 1000}}

<script type="text/javascript">
    var student = {
        lastname: "张三",
        age: 18,
        car: {
            pp: "宝马", price: 1000
            }
        };
    alert(student.car.pp);
</script>

json要求可js对象是一样的,只不过key必须要是字符串

json应该是利于传输的字符串,因为http 只接受文本格式,所以

  • json应该是js对象的字符串表示法

        //将js对象转换成字符串(json)
        var c = JSON.stringify(student1);
        alert(c);
        //将json(必须是满足js对象格式的)转换成一个js对象
        var c1 = JSON.parse(c);
        alert(c1.lastname);
    

AJAX

(Asynchronous Js And Xml) 异步js和xml

  • 是一种页面不刷新就能得到服务器来的数据

原来的交互:

  • 发送请求
  • 服务器收到请求,调用对应的servlet来处理,servlet处理完会相应信息生成
  • 浏览器收到了服务器响应的数据,把之前的页面清楚,展示新的数据(效果就是刷新)

那现在的交互(AJAX)

  • 利用xmlHttpResquest对象帮我们发送请求
  • 服务器收到请求,调用对应的servlet来处理,servlet处理完会相应信息生成
  • xmlHttpRequest对象(js对象)收数据(浏览器就感受不到这个数据了:xmlHttpRequest对象)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gnFnyZdS-1579600580683)(C:\Users\你大爷\AppData\Roaming\Typora\typora-user-images\image-20200121150538991.png)]

原生AJAX很麻烦,所以使用jquery包装后的

jQuery - Ajax

为什么要用Ajax,因为正常的逻辑你不是要跳转么,那么可能我只需要改动的是其中的一小部分,但是我如果用以前的方法,我就需要把所有的本来不需要改动的还需要重新提交一遍,太浪费,所以我需要使用Ajax

内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如Clark和Park变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间和换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术和优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率和控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性和性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释和技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值