BOM概述:Browser Object Model - 浏览器对象模型:专门为操作浏览器准备的一些对象,没有任何标准,
BOM有哪些对象:window、history、navigator、location、screen、event
window对象:
打开网页的新方式:
当前网页打开可以后退: open("网址","_self");
当前网页打开禁止后退: location.replace("新网址");
在新窗口打开:open("网址","_blank");
在新窗口打开,只能打开一个: HTML: <a href="网址" target="自定义名字"></a>
js: open("网址","自定义名字");
属性和方法:
打开新窗口:var 新窗口=open("url","target/自定义","width=,height=,left=,top=");
特殊:1、没有加第三个参数的时候,我们的新窗口会和浏览器融为一体
2、添加上第三个参数的时候,我们的新窗口就会脱离浏览器独立存在,而且可以把他保存起来
关闭窗口:window/新窗口.close();
移动窗口:新窗口.moveTo(x,y);
修改窗口的大小:新窗口.resizeTo(newW,newH);
获取屏幕的大小:screen.width/height
获取浏览器的完整大小:outerWidth/Height
获取浏览器文档显示区域的大小:innerWidth/Height
定时器:
周期性定时器:
开启:变量名=setInterval(回调函数,延时);
停止:clearInterval(变量名);
一次性定时器:
开启:变量名=setTimeout(回调函数,延时);
停止:clearTimeout(变量名);
history:保存着当前窗口的历史记录
history.go(数字); 正数前进,负数后退,0刷新;
navigator:当前浏览器的基本信息
就一个属性:navigator.userAgent;
location:保存着当前窗口的正在打开url
1、一个网址(url)有哪几部分组成
有5部分组成:
1、协议:https/http
2、主机号或者域名:域名需要购买
3、端口号:默认端口号可以不写;http为80,https为443;
4、文件的相对路径;
5、查询字符串/请求信息:表单提交的内容
2、跳转页面:
location="新url"
跳转页面,禁止后退:location.replace("新url")
event:事件对象
新的绑定事件的方式:
if(elem.addEventListener){
elem.addEventListener("事件名",callback)
}else{
elem.attachEvent("on事件名",callback)
}
事件周期:
1、捕获阶段:记录要执行的事件有哪些,由外向内
2、目标触发阶段:目标元素:实际触发事件的元素
3、冒泡执行阶段:由内向外的冒泡执行
获取事件对象event:
1、event对象可以获取鼠标的位置:2步
1、在你的事件处理函数中的第一个形参会自动获取到事件对象event
2、获取鼠标的位置:
获取鼠标相当于网页的坐标:e.pageX/Y
2、阻止冒泡:
兼容:if(e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;
}
3、利用冒泡:兼容:var target=e.srcElement;
4、阻止浏览器默认行为:
兼容:if(e.preventExtensions){
e.preventExtensions();
}else{
e.returnValue=false;
}
5、获取键盘码:直接console.log(e.keyCode);
服务器概念:简单来说就是一台电脑
搭建私网服务器:XAMPP软件,安装好就可以了
Apache - 用于运行PHP的环境。
如何访问:
自己访问:
打开浏览器:输入
127.0.0.1:端口号
localhost:端口号
主机号只有自己可用
其他人访问:
打开cmd输入ipconfig,把ipv4给对方就可以了
在服务器上搭建一个自己的项目
把自己做的做过的任意一个项目:全部复制到 盘符:/xampp/htdocs
添加网页小图标:
任意图片,放到 盘符:/xampp/htdocs,名字改为favicon.ico
修改顶级域名 - 假象(没花钱,只有自己可以用)
C:\Windows\System32\drivers\etc\hosts文件
在最后添加一句话127.0.0.1 www.想要的域名.com
问题1:保存时,系统文件,不允许修改,另存为到桌面,拖进去覆盖它
问题2:打开是一个白板,把代老湿提供的覆盖过去
数据库:
关系型数据库 - 以表格为主
Oracle - Oracle(甲骨文):收费
MySQL - Oracle(甲骨文):免费
sqlserver - 微软:大学讲课:垃圾
非关系型数据库 - 没有固定的格式
是一种运动 - 反关系型数据库
主流产品 - mongoDB,以JSON格式为主
MySQL:
访问:
1、图形访问:要求:同时打开mysql和apache
访问:127.0.0.1:端口号/phpmyadmin
2、命令板方式:
1、打开cmd
2、输入cmd的命令,进入到d:/xampp/mysql/bind
1、输入:盘符: 回车
2、输入:cd xampp/mysql/bind
3、登录:mysql -uroot -p 回车不要加分号
4、退出:exit
5、MySQL语句:
查看数据库:SHOW DATABASES;
创建数据库:CREATE DATABASE IF NOT ESISTS 数据库名称 CHARACTER SET utf8;
切换数据库:USE 数据库名称;
创建数据表:CREATE TABLE user(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(30),
pwd varchar(6),
email varchar(30),
vip varchar(1)
);
数据/记录:
增:INSERT INTO USER VALUES(0,"name","123456","zy@qq.com","0");
删:DELETE FROM 表名 WHERE id=几; - 一旦删除数据就不回再回来了
改:UPDATE 表名 SET 字段名=字段值,... WHERE id=几;
查:3种:
SELECT * FROM 表名;
SELECT 字段名,字段名,... FROM 表名;
SELECT * FROM 表名 WHERE id=几;
PHP
运行PHP:打开apache,将你的项目/文件夹放到htdocs里面,在用浏览器输入127.0.0.1,打开你需要运行的文件
PHP的语法:输出方式:echo(想要输出的内容)只能输出4种标准类型
var_dump(想要输出的内容)可以输出一切数据类型
常量和变量: 和JS一样
语法:$变量名=值;
$号同等于JS里的var,但是不能省略
数据类型:
四种标准/基本/原始类型:
整型:Int
浮点型:Float/Double
布尔:Boolean
字符串:String - 有区别
单引号 - 只能放入纯文本
双引号 - 支持放入变量 - 类似js模板字符串
echo "{$name}今年{$age}岁,喜欢{$hobby}";
两种复合类型:
Array - 数组:保存多个相关数据
创建:
1、直接量:$arr=[值1,...] - 索引数组
2、内置对象:$arr=array( - hash数组:其实就是对象
key=>value,
...
)
访问:$数组名[下标]
遍历:循环
全栈开发:
前端=>PHP<=>数据库
1、前端->后端
前端需要发起请求
1、表单请求/提交
注意:
1、input必须添加name属性,甚至有的input(radio、checkbox、select&option)可能还要添加value
2、form表单必须添加action="服务器端文件的路径";
3、method到底是用get还是post,和后端进行沟通/看开发文档
get->得到,只要跟安全性不挂钩的时候,大小有限制2kb:搜索框(把东西拿出来)
post->发送,只要跟安全性挂钩的时候,优先使用,举例:登录/注册(把东西放进去)
2、后端 需要接收住 前端传来的 请求消息
语法:$变量=$_GET/POST/REQUEST["input的name的值"]
REQUEST - 请求:不管前端是GET还是POST,都能接住
2、后端<->数据库:php自带操作mysql的API,只需要学习4.5句话完毕
1、创建和数据库的连接对象
$conn=mysqli_connect("hostname","username","userpwd","dbname");
我们班的固定:
$conn=mysqli_connect("127.0.0.1","root","","h52202");
1.5、为此数据库设置中文编码
mysqli_query($conn,"SET NAMES utf8");
2、创建SQL语句:你要干什么
$sql="INSERT/UPDATE/DELETE/SELECT";
3、数据库要执行SQL语句
$result=mysqli_query($conn,$sql);
//增删改:true->执行成功 false->执行失败
//查:返回的是一个我们都不会认识的结果集对象
解决:php提供了一套方法
while(($row=mysqli_fetch_row|assoc|array($result))!=null){
var_dump($row);//拿到了数据要干什么?
echo "<br>";
}
4、断开和数据库的连接
mysqli_close($conn);