w9d1,d2,d3

AJAX

动态网站和静态网站

​ 动态网站可维护性高,拓展性强,成本比较高

​ 静态网站可维护性低,成本低

PHP

**单引号和双引号的区别:**单引号将内容解析成字符串 双引号将内容解析成变量

配置虚拟主机

1.httpd配置文件 ====》documentRoot 根路径 ======> extra文件夹 =====> v-hosts配置文件 ====》定义主机名 别名 根路径 ===》修改hosts 127.0.0.1(表示本机) chen.com

配置多台虚拟主机

VirtualHosts 把其下面的注释打开 注释内容为----- Include conf/extra/httpd-vhosts.conf==》在v-hosts 文件中配置多台虚拟主机 ==》修改hosts文件 ==》 修改权限标签 Directory 把它更改为根目录

AJAX

  • 原生

    • 1.创建核心对象 XMLHttpRequest(xhr)
    • 2.准备发送 xhr.open(参数)
        1. 请求方式 get(参数在URL) post(请求体)
        2. URL: 请求地址
        3. 同步异步 默认是异步 true
    • 3.发送请求 xhr.send(参数)
      • 当是get时 参数为null
      • 当是post 参数为需传递到后台的参数
    • 4.回调函数 xhr.onreadystatechange
      • readyState
        • 0 对象创建成功
        • 1 已发送请求
        • 2 浏览器接收到数据
        • 3 浏览器解析数据
        • 4 数据解析完成 可以开始使用
      • status
        • 2XX 成功
        • 3XX 转发或重定向
        • 4XX 找不到资源
        • 5XX 服务器端错误
  • 不适用ajax如何实现异步刷新

    • 隐藏帧
      • iframe 子框架上的数据放到大窗口的DOM元素下
  • JQuery封装的ajax

  • $.ajax() 内部参数为一个对象

    • type 请求方式
    • url 请求地址
    • data 请求参数
    • dataType
      • xml responseXML
      • text responseText
      • script(脚本)responseText
      • html responseText
      • json responseText
      • jsonp responseText
    • success 数据请求成功后的回调函
    • error 失败后的回调函数

    跨域

    ajax默认不允许跨域,因为同源策略

    • dataType改为jsonp

    jsonp原理

    • 动态创建script标签 (可以进行跨域操作)
      *
    • 静态创建script标签 :
      • 保证加载顺序
      • 参数不方便传递

    模板引擎

    ​ 数据+模板 ==> 静态页面的片段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于51单片机与mt9d111相互通信的方式有多种,所以代码也有所不同。以下是一种可能的通信方式和代码示例: 1. 串行通信方式 ```c #include <reg52.h> sbit SI = P1^0; // 串行数据输入 sbit SO = P1^1; // 串行数据输出 sbit SCK = P1^2; // 串行时钟 void delay(unsigned int t) // 延时函数 { unsigned int i; for(i = 0; i < t; i++); } void mt9d111_init() // 初始化mt9d111 { // 配置mt9d111的寄存器,详见数据手册 // ... } void spi_write(unsigned char data) // 串行写入函数 { unsigned char i; for(i = 0; i < 8; i++) { SO = (data & 0x80) >> 7; // 取最高位发送 data <<= 1; SCK = 1; // 上升沿发送 SCK = 0; } } unsigned char spi_read() // 串行读取函数 { unsigned char i, data = 0; for(i = 0; i < 8; i++) { data <<= 1; SCK = 1; // 上升沿读取 data |= SO; SCK = 0; } return data; } void main() { mt9d111_init(); // 初始化mt9d111 while(1) { // 读取mt9d111的图像数据 // ... } } ``` 2. 并行通信方式 ```c #include <reg52.h> sbit D0 = P1^0; // 数据线0 sbit D1 = P1^1; // 数据线1 sbit D2 = P1^2; // 数据线2 sbit D3 = P1^3; // 数据线3 sbit D4 = P1^4; // 数据线4 sbit D5 = P1^5; // 数据线5 sbit D6 = P1^6; // 数据线6 sbit D7 = P1^7; // 数据线7 sbit PCLK = P2^0; // 像素时钟 sbit VSYNC = P2^1; // 垂直同步 void delay(unsigned int t) // 延时函数 { unsigned int i; for(i = 0; i < t; i++); } void mt9d111_init() // 初始化mt9d111 { // 配置mt9d111的寄存器,详见数据手册 // ... } void main() { unsigned char data; mt9d111_init(); // 初始化mt9d111 while(1) { VSYNC = 0; // 低电平表示开始读取图像 delay(1); // 等待一段时间,确保数据稳定 while(!VSYNC); // 等待垂直同步信号 while(VSYNC); // 等待垂直同步信号结束 PCLK = 1; // 上升沿读取像素数据 data = (D7 << 7) | (D6 << 6) | (D5 << 5) | (D4 << 4) | (D3 << 3) | (D2 << 2) | (D1 << 1) | D0; PCLK = 0; // 处理读取到的像素数据 // ... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值