代码改变世界

HTML5 与JS学习笔记

  Evan.Pei  阅读(273)  评论(0编辑  收藏  举报

1999年12月发布的HTML4.01

W3C(World Wide Web Consortium,万维网联盟

HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。

OOP 【Object Oriented Programming】面向对象编程

W3C 【World Wide Web Consortium】万维网联盟

视频音频播放

 

上图:浏览器找到合适的视频文件进行播放,如没有显示您的浏览器不支持!下图音频同理

 

1
2
3
4
5
6
7
8
9
//视频/音频  暂停播放代码:
<input type="button" value="播放/暂停" onclick="playq();"/>
function playq(){
  if(aaa.paused)
    aaa.play();
  else{
    aaa.pause();
    }
}

控件的拖放

将任何控件拖放到div中

Canvas绘图

       1.    方形fillRectX,Y,width,height

 

效果图:

2.    绘制线条stroke()

SVG

  • SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
  • SVG 用于定义用于网络的基于矢量的图形
  • SVG 使用 XML 格式定义图形
  • SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失
  • SVG 是万维网联盟的标准

与其他图像格式相比(比如 JPEG 和 GIF),使用 SVG 的优势在于:

  • SVG 图像可通过文本编辑器来创建和修改
  • SVG 图像可被搜索、索引、脚本化或压缩
  • SVG 是可伸缩的
  • SVG 图像可在任何的分辨率下被高质量地打印
  • SVG 可在图像质量不下降的情况下被放大
    • Canvas 与 SVG 的比较

      下表列出了 canvas 与 SVG 之间的一些不同之处。

      Canvas

      • 依赖分辨率
      • 不支持事件处理器
      • 弱的文本渲染能力
      • 能够以 .png 或 .jpg 格式保存结果图像
      • 最适合图像密集型的游戏,其中的许多对象会被频繁重绘

      SVG

      • 不依赖分辨率
      • 支持事件处理器
      • 最适合带有大型渲染区域的应用程序(比如谷歌地图)
      • 复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
      • 不适合游戏应用
      • HTML5 地理定位
      • HTML5 Geolocation API 用于获得用户的地理位置。

        鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

        1. 获取用户所在的经度和纬度
        2. 获取google地图所在的位置

        HTML 5 Web 存储

          在客户端存储数据

        HTML5 提供了两种在客户端存储数据的新方法:

        • localStorage - 没有时间限制的数据存储
        • sessionStorage - 针对一个 session 的数据存储

        localStorage 方法

        localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

      • 1
        2
        3
        4
        <script type="text/javascript">
        localStorage.lastname="Smith";
        document.write(localStorage.lastname);
        </script>

          

        sessionStorage 方法

        sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

        C#后台不能用其创建的对象,C#创建的对象这里也用不了。

      • 1
        2
        3
        4
        <script type="text/javascript">
        sessionStorage.lastname="Smith";
        document.write(sessionStorage.lastname);
        </script>

          

        HTML 5 应用程序缓存

        什么是应用程序缓存(Application Cache)?

        HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。

        应用程序缓存为应用带来三个优势:

        • 离线浏览 - 用户可在应用离线时使用它们
        • 速度 - 已缓存资源加载得更快
        • 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

        <html manifest="/example/html5/demo_html.appcache">

        页面在断网时也能访问。

        HTML 5 Web Workers

        这是运行在后台的JavaScript,他的运行不会影响页面的性能。

        使用

      • /example/html5/demo_workers.js

      • 注释:web worker 通常不用于如此简单的脚本,而是用于更耗费 CPU 资源的任务。

        Web Workers 和 DOM

        由于 web worker 位于外部文件中,它们无法访问下例 JavaScript 对象:

        • window 对象
        • document 对象
        • parent 对象
        • HTML 5 服务器发送事件

           服务器后台跟新后自动跟新到前台

          HTML5新的输入类型

          • email   -----------只能输入邮箱地址,并加以验证
          • url     -----------只能输入例如:http://www.baidu.com的连接,并加以验证
          • number
          • range
          • Date pickers (date, month, week, time, datetime, datetime-local)
          • search
          • color
          • 有点意思的标签

            <legend>

            定义 fieldset 元素的标题。

            <fieldset>

            定义围绕表单中元素的边框。

            <footer>

            定义 section 或 page 的页脚。

            <header>

            定义 section 或 page 的页眉。

            <ins>

            定义被插入文本。

            <del>

            定义被删除文本。

            <keygen>

            定义生成密钥。

            <mark>

            定义有记号的文本。

            <meter>

            定义预定义范围内的度量。

            <noframes>

            定义针对不支持框架的用户的替代内容。

            <noscript>

            定义针对不支持客户端脚本的用户的替代内容。

            <ol>

            定义有序列表。

            <optgroup>

            定义选择列表中相关选项的组合。

            <output>

            定义输出的一些类型。

            <progress>

            定义任何类型的任务的进度。进度条

            <q>

            定义短的引用。加“”

            <source>

            定义媒介源。

            <audio>

            定义声音内容。

            <video>

            定义视频。

            <sup>

            定义上标文本。

            <track>

            定义用在媒体播放器中的文本轨道。

          • HTML5新标签
          • <bdi>

            定义文本的文本方向,使其脱离其周围文本的方向设置。

            <mark>

            定义有记号的文本。

            <meter>

            定义预定义范围内的度量。

            <progress>

            定义任何类型的任务的进度。

            <rp>

            定义若浏览器不支持 ruby 元素显示的内容。

            <rt>

            定义 ruby 注释的解释。

            <ruby>

            定义 ruby 注释。

            <time>

            定义日期/时间。

            <wbr>

            定义视频。

            <datalist>

            定义下拉列表。

            <keygen>

            定义生成密钥。

            <output>

            定义输出的一些类型。

            <canvas>

            定义图形。

            <figcaption>

            定义 figure 元素的标题。

            <figure>

            定义媒介内容的分组,以及它们的标题。

            <audio>

            定义声音内容。

            <source>

            定义媒介源。

            <track>

            定义用在媒体播放器中的文本轨道。

            <video>

            定义视频。

            <nav>

            定义导航链接。

            <command>

            定义命令按钮。

            <header>

            定义 section 或 page 的页眉。

            <footer>

            定义 section 或 page 的页脚。

            <section>

            定义 section。

            <article>

            定义文章。

            <aside>

            定义页面内容之外的内容。

            <details>

            定义元素的细节。

            <dialog>

            定义对话框或窗口。

            <summary>

            为 <details> 元素定义可见的标题。

            <embed>

            为外部应用程序(非 HTML)定义容器。

        • 新属性

      • 1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        1.<input type="number" name="points" step="3" />// step 属性规定输入字段的合法数字间隔,(假如 step="3",则合法数字应该是 -3、0、3、6,以此类推)
        2.<input type="email" name="email" autocomplete="off/on" />//是否启用输入记忆,和自动完成输入功能.off(打开)
        3.<input type="text" name="lname" autofocus>//页面加载时自动获取焦点
        4.<input type="url" list="url_list" name="link" />//将html5的下拉框<datalist id="url_list">绑定到文本框中。
        5.<input type="search" name="user_search" placeholder="Search W3School" />//以灰色背景字提示该输入的数据。
        6. <input type="text" name="usr_name" required="required" />//不为空的检验
        -------------以上是input 相关的属性
        7. <p contenteditable="true">这是一段可编辑的段落。</p>//在网页上可以直接编辑该文字。
        8. <p draggable="true">这是一个可拖动的段落。</p>//设置可以拖动的段落
        9. <element dropzone="copy|move|link">//拖动时产生一个复制副本或其他。
        10. #div_1{text-transform:capitalize;}//这个样式可使所有单词首字母以大写开头

         

        1
        2
        3
        4
        5
        6
        11.css中 !important的用法。 !important代表这重要的意思如有有相同的样式会与这条执行剩下的不执行,ie6除外。
         
           #box {
                   color:red !important;//ie6中不会执行改行,因为ie6不认识 !important,其他浏览器会执行。
                   color:blue;//ie6会运行这一行。
                  }

          

         

        ---------------以下是JS面向对象---------------

        封装

        如下图是一个javascript构造函数(constructor )(其实就是一普通的方法,但是在面向对象时理解成构造函数),其中封装了Cat这个原型对象的属性和方法。

        •  Prototype模式,上图已经是封装,下面是更好的封装

          Prototype原型的意思,作用是,如上例子中cattype 属性和eat方法是一样的所有的实例对象都是一样的,这样会占用内存,使用prototype会节省内存使用,所有的实例都指向同一个内存的位置。

        • 继承

 方法:

Math.ceil()//方法执行的是向上取整

例如:
Math.ceil(12.2)//返回13
Math.ceil(12.7)//返回13
Math.ceil(12.0)// 返回12
Math.random()//获取随机数
Math.ceil(Math.random()*30)//30以内的整数
Math.ceil(Math.random()*(38-8)+8)//8至38之间的整数
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示