【无标题】

必须引入jquery.js文件

第一层:最麻烦的,但也是最无敌的
    $.ajax({
        "url":"xx.php",//连接服务器端的地址,【必写】
        "type":"GET/POST",//请求的类型,默认值为get - 可选
        "data":"key=value&...",//请求的消息 - 可选
        "dataType":"HTML/JSON/XML/JSONP",//解析响应消息
       //   "jsonp":"callback",//通行令的名字
        "success":(data)=>{//ajax请求成功,才会执行,并且返回得到的数据,【必写】
            data;//服务器端返回的响应数据
        },
        "error":()=>{
            //只有报错后才会执行 - 直接不写,不需要记忆
        }
    });


第二层:第一层的基础上进行了再次简化:3个API - 不能做跨域
    1、最垃圾:
       $("xx").load("xx.php","key=value",data=>{

       })
        1、会将数据直接放到页面元素之中,document.write将页面元素给替换掉
        2、无法设置请求类型,只能是默认的GET
        3、无法帮我们脱衣服
    
    2、$.get("xx.php","key=value",data=>{

       },"JSON")

    3、$.post("xx.php","key=value",data=>{

       },"JSON")

第三层:特殊功能 - 跨域(拿别人电脑上的数据)
    浏览器具有保护策略 - 同源策略:要求协议、域名、端口号必须相同,只要有一个不同就会触发此保护机制
    跨域jQuery使用到了一个叫jsonp技术
    跨域语法:
      前端:
      $.getJSON("url?key=?","data",data=>{
        //key=? - jQuery自动传入一个值,其实是一个函数,后端需要接住后在调用:通行令函数
      })

      后端:echo $_GET["key"]."(".JSON_encode($arr).")";

    联合项目:两个人都要用跨域操作

目的:1、简化版ajax
      2、如何使用ajax去拿去别人电脑上的数据

4、滚动监听触发ajax
   前端:
            var count=0;
            $(window).scroll(()=>{
                var sh=$(window).scrollTop()+innerHeight;//获取当前滚动条滚动到底部的位置
                var bh=$("body").height();//完整的页面的高度
                if(sh==bh){
                    $.get("05server.php",`count=${count}`,data=>{
                        //拿到data你要干啥子
                        count+=2;
                    },"JSON")
                }
            })

   后端:
    $sql="SELECT * FROM 表名 ORDER BY id DESC LIMIT 开始下标,个数;";

想要使用bootstrap一定要记得引入:
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
        <script src="js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/bootstrap.js" type="text/javascript" charset="utf-8"></script>
    
全局css样式:分为了2个部分
    1、提供了css reset - 如果你引入了bootstrap.css,不需要自己去重置样式
       2、提供了大概1000+的class - class带有样式
    3、提供了哪些有用的和没用的
        1、按钮:
             *有用的:1、btn btn-default;//白底黑字的按钮
                 2、btn-block;//块级按钮
             没用的:五种颜色(btn-danger/warning/success/info/primary) 和 四种大小(lg/md/sm/xs)

        2、图片:
             *有用的:1、img-rounded; - border-radius: 6px;
                 2、img-circle; - border-radius: 50%;//这两个class不是只有图片能用

             没用的:缩略图:img-thumbnail;

        3、文本:
             *有用的:文本对齐方式:text-right/center/justify

           

        4、*表格 - 很屌,但是表格用得少
             1、table - 长得像个表格
             2、table-striped - 隔行变色
             3、table-hover - 带有悬停效果
             4、table-border - 带有边框
             5、table-condensd - 紧缩型表格
             6、table-responsive - 响应式表格,必须设置在table的父元素身上

        5、*表单 - 直接梭,填空修改

     

栅格式布局:使用步骤:10步
    1、必须放上一个容器:
        <div class="container/container-fluid"></div>
    2、必须在此容器中放入行:
        <div class="row"></div>
    3、必须在此容器中放入列:
        <div class="col-*-*"></div>
    4、在不同的屏幕设置不同的列宽
        col-lg/md/sm/xs-*
    5、列宽:bootstrap将一行等分为了12份
        col-屏幕-列宽(1-12)
    6、更小的屏幕设置列宽可以管住更大屏幕
        lg - 只能管lg屏幕
        md - 只能管lg/md屏幕
        sm - 只能管lg/md/sm屏幕
        xs - 管所有
        自己有,优先用自己的,自己没有优先用离自己近的
    7、设置偏移:设置向左顶出几份
        col-屏幕-offset-列宽
        lg - 只能管lg屏幕
        md - 只能管lg/md屏幕
        sm - 只能管lg/md/sm屏幕
        xs - 管所有
        自己有,优先用自己的,自己没有优先用离自己近的
    8、设置在某个屏幕隐藏:只管自己屏幕,不管别人
        hidden-屏幕
    9、不推荐:列中可以继续嵌套行,一行又会分为12份,如果列太小了,什么都放不下
    10、栅格式布局是一个怪异盒模型:设置间距要用border

Node.js知识点:
    1、js 和 node 的区别:
        相同点:都可以使用一切ecmascript的操作,包括一切API都可以使用,放心大胆的使用es6的语法(服务器端不存在浏览器,不会有老IE)
        不同点:1、javascript:BOM DOM;
            2、Node.js:虽然不能使用BOM DOM,但是他却又10万个以上的模块

    2、模块:每一个.js文件,都可以称之为叫做一个模块
        1、模块化开发:如果以一个网页来说,我们可以按照功能分为很多个模块:商家模块、产品模块、促销模块、用户模块...
                   分工合作:将每个模块就给对应的人完成,最后再由主模块进行引入
            每一个模块都有一个操作,可以用于公开/暴露自己的成员
                1、exports.属性名=值
                2、module.exports={
                    属性名:值,
                    ...
                   }
                
            每一个模块都有一个操作,可以用于引入其他模块:
                var obj=require("./文件名");//必须加上.
            鄙视题:exports和module.exports有什么区别
                都是用于暴露公开自己的成员的
                但是:exports={} 这写法是错误的
                node.js底层有一句话:exports=module.exports
                其实真正做的公开功能的是module.exports
                如果你使用了         exports={},替换了module.exports,不在具有公开的功能

        2、模块的分类:
            1、官方模块 - 大概几十个,重要的只有几个 
            2、第三方模块 - 多到数不清,提供了很多很多官方没有的东西,有一个网址npm
            3、自定义模块

            node.js最大的特点:
                1、快、非常快 - 以前最快的是php,node.js速度是php的十六倍
                2、为什么快:1、因为官方提供的东西很少,甚至连数据库操作都没有
                         2、使用google浏览器v8引擎

        3、官方模块:不需要下载,在你安装node.js环境时已经带上了,但是某得模块可能需要引入,引入时不要加./
           1、Global模块
            不需要引入,直接可以使用:
            提供:
              1、三种定时器(Interval、Timeout、Immediate)
                Immediate 底层:Timeout延时为0,立刻执行,但是毕竟异步操作,不会卡主后续代码
              2、console对象

           2、querystring模块:查询字符串
            需要引入:var qs = require('querystring');
            提供了解析url查询字符串部分的功能
            var obj=qs.parse("查询字符串");
            想要获取前端传来的每一部分:obj.键名;
            垃圾:如果前端传来的是一个完整的网址,他就解析不了了
            
           3、url模块: - 小重点
            需要引入:var url = require('url');
            提供了解析完整的url的功能
            var objurl=url.parse("完整的网址",true);
            //加上true,自动调用querystring模块的parse方法,进行查询字符串部分变为一个对象
            真正重要的有两个点:
                1、查询字符串:objurl.query.键名 - 拿到前端传来的数据
                2、路由/请求地址:objurl.pathname - 下午会搭配上fs模块(文件系统)和http模块(服务器)实现代码搭建服务器和文件系统

           4、Buffer模块:缓冲区,可以将数据(字符串、数字、图片、HTML...)变为一个16进制的数字 - node中的一个新的数据类型
            不需要引入,直接可以使用:
            我们绝对不会主动的使用buffer的任何操作,但是后面我们的一些API可能会导致我们得到的结果就是一个buffer,我们不认识,node.js的大部分API都是支持buffer操作

           5、fs模块 - 大重点:文件系统:对文件增删改查
            需要引入:var fs = require('fs');
            
               *异步读取文件:fs.readFile("文件路径",(err,buf)=>{
                        buf->读取到的内容
                      })

            异步写入文件:fs.writeFile("文件路径","新内容",(err)=>{ - 会替换原有的内容
                        console.log("写入完毕后续操作")
                      })
                    
            异步追加文件:fs.appendFile("文件路径","新内容",(err)=>{ - 会替换原有的内容
                        console.log("写入完毕后续操作")
                      })

            异步能够最大的发挥node.js的特点(快)

            注意:vscode的同学你们写文件相对路径有可能会失败:绝对路径node.js提供了一个全局变量:
                __dirname+"/你的文件的相对路径"

           

           6、http模块 - 超级重点:搭建服务器
            固定步骤
            需要引入:var http = require('http');
            var app=http.createServer();//创建服务器应用
            app.listen(80);//设置了此服务器应用的端口号为80
            app.on("request",(req,res)=>{
                req.url 此属性记得使用url模块的parse方法分别解析出路由和查询字符串
                res.end();//响应方式,此方法一个请求只能有一个响应
            })

           ***注意:node.js搭建服务器和文件系统,所有的连接(href和src)其实都是一个请求路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值