iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >HTML5 & CSS3初学者指南(3)
  • 767
分享到

HTML5 & CSS3初学者指南(3)

初学者指南 2023-01-31 06:01:13 767人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文介绍了 HTML5 的一些新特性。主要包含以下几个方面:WEB 存储地理位置拖放服务器发送事件 html5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据。它是通过一个网络浏览器作为客户端数据库实现的,它允许网页以键值对

本文介绍了 HTML5 的一些新特性。主要包含以下几个方面:

 

html5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据。它是通过一个网络浏览器作为客户端数据库实现的,它允许网页以键值对的形式来存储数据。

它具有以下特征:

  • 每个原始网站/域最多可存储 5MB 的数据。

  • 你可以通过属性和方法来使用 javascript 操作 web 存储器中的数据实现访问。

  • 就像 cookies,你可以选择将保持数据(维持),即使你已经离开了该网站,关闭了浏览器选项卡,退出了浏览器或关闭了计算机。

  • 不像 cookies 这种由服务器端脚本创建的,web存储是由客户端脚本如 JavaScript 创建。

  • 不像 cookies,web 存储中的数据不会自动伴随服务器端每一次 Http 请求。

  • Web 存储在主流的 Web 浏览器中都是原生支持的,如 Chrome,Opera,Firefox,Safari 和 IE8 +。换句话说,不需要第三方插件

网络存储提供了2种不同的存储区域- 会话存储和本地存储 –它们在范围和时限有所不同,需要在不同情况下使用。

 

会话存储

会话存储,数据以字符串的形式进行存储,只会持续在当前的会话。当浏览器窗口关闭时,数据将会被删除。会话存储是专门用于同一个用户在不同的浏览器中使用相同的网站同时进行多个事务的情况。每一个浏览器窗口中的事务会获取它们自己会话存储的备份,这些会话备份是和其它浏览器窗口中的另一个事务不同的。当用户关闭浏览器窗口时,隶属于这个窗口的会话存储数据将会继续存在。以这种方式,事务数据不会从一个浏览器窗口泄露到另一个窗口。会话存储就是cookies确定的解决方案,正如 HTML5 Web存储规格 陈述的:

引用:

“如果用户使用相同的站点在两个不同的窗口购买了飞机票。如果站点使用 Cookie 来跟踪用户已购买的票据,则当用户从两个窗口点击页面跳转时,当前正在购买的票将会从一个窗口“泄漏”到另一个,从而可能导致用户在没意识到的情况下,为同一个航班够买了两张票。

会话存储必须用于处理机密和敏感信息的网络活动,如信用卡号码,社会保险号码和登录证书。这些信息很容易受到“DNS欺骗”的***,所以不应该存储超过一个单个会话。”

如何创建并访问一个 sessionStorage:

<script type="text/javascript">sessionStorage.lastname="Smith";

document.write(sessionStorage.lastname);</script>

 

本地存储,数据以字符串的形式进行存储,并且会一直持续下去(除非你明确地删除它)。即使浏览器窗口关闭了数据也会一直存在,同时如果接下来对相同 origin 的访问使用的是相同的浏览器,那么数据也是可用的。本地存储是专为存储跨越多个浏览器窗口和持续的时间超过当前会话的数据。

不像桌面系统,Web 应用程序一直缺乏离线工作的能力。现在不一样了,HTML5 本地存储的出现,已经使脱机工作成为了可能。试想一下你正在填写一份多页的 Web 表单,或者撰写一篇文章时,截止日期已经迫在眉睫,突然发生网络故障中断。你将会失去你精心创建的所有数据。因为有了本地存储,你就可以继续离线工作,而 Web 应用程序会使用一些客户端脚本如 JavaScript 间歇性地将你的工作保存到本地存储。

一个网站可以让用户自定义网页的主题和布局,并在本地存储中保存这些设置。以这种方式,用户可以在后续访问中看到自己个人的网页。

如何创建和访问 localStorage:

<script type="text/javascript">localStorage.lastname="Smith";

document.write(localStorage.lastname);</script>

 

HTML geolocation api 只有一个对象,就是 navigator.geolocation 对象。你可以将 navigator.geolocation 比作浏览器中的指南针。浏览器是否支持这个 API,还有待确认。你可以通过将以下的 if-else 写入到自己的代码中,来检测浏览器是否支持。

// Check whether browser supports Geolocation API or notif (navigator.geolocation) // Supported{    // place the geolocation code here}else // Not supported{
    alert("Oop! This browser does not support HTML5 Geolocation.");
}

navigator.geolocation 对象公开了3中方法 getCurrentPosition(),watchPosition(),和clearWatch()。

  • getCurrentPosition()

getCurrentPosition()方法用来获得用户的当前位置。

navigator.geolocation.getCurrentPosition(getPosition);
  • watchPosition()

watchPosition()方法与 getCurrentPosition()方法是几乎相同的。它们都返回当前位置信息并具有相同的方法签名 - 一个成功的回调函数,一个错误的回调函数和一个位置选项对象。唯一的区别在于, 一旦激活了点击按钮,getCurrentPosition()方法会返回位置信息;而 watchPosition()方法将继续获得位置信息,一旦用户设备的位置发生变化并在初始话激活之后。

该 watchPosition()方法会返回一个 watch ID,当不再需要获取位置时,可以用 watch ID 来停止 watchPositon()方法。

  • clearWatch()

clearWatch()方法以 watchPosition()方法的 watch ID 作为参数,用于停止执行 watchPosition()方法。

 

我们已经很熟悉拖放电脑桌面上的文件、文件夹和图标了。拖放是一种任何的桌面应用具有的强有力的也是理所当然应该具备的用户交互。使用像鼠标这样的指针设备,通过拖放来实现拷贝,插入和删除任何电脑桌面上的文件和对象。

HTML5 Drag and Drop API 提供了对浏览器拖放操作原生的支持,使得代码实现拖放变得更容易。

  • 设置元素为可拖放

首先,为了使元素可拖动,把 draggable 属性设置为 true :

<img draggable="true" />

  • 拖动什么

然后,规定当元素被拖动时,会发生什么。

在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。

dataTransfer.setData( ) 方法设置被拖数据的数据类型和值:

function drag(ev)
{
    ev.dataTransfer.setData("Text",ev.target.id);
}
  • 放到何处

ondraGover 事件规定在何处放置被拖动的数据。

默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

这要通过调用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()
  • 进行放置

当放置被拖数据时,会发生 drop 事件。

在上面的例子中,ondrop 属性调用了一个函数,drop(event):

function drop(ev)
{
    ev.preventDefault();    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
}

 

传统的用户和网站之间的交互模式是用户发起的请求和应答类型。用户通过浏览器主动发起请求,并且等待服务器的应答。为了检查某个特定的网页上是否有更新,用户需要通过点击浏览器上更新/重新登录按钮来向服务器发送新的请求。换言之,服务器必须不间断的将服务器侧的更新推送出去。当信息不间断的无法预测的变化时,通过这种方式来获取一些关键的做决定的信息,就不是特别有用了。例如股票价格更新,新闻传递,天气预报等。

当信息到达时,HTML 服务器发送事件(SSE)使得服务器能够将信息发送(推送)到客户端,避免了服务器持续推送的需要。这也使得网站在不需要任何第三方插件的情况下,能够为客户端提供推送服务。

  • Server-Sent 事件 - 单向消息传递

Server-Sent 事件指的是网页自动获取来自服务器的更新。

以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。

  • 接收 Server-Sent 事件通知

EventSource 对象用于接收服务器发送事件通知:

var source=new EventSource("demo_sse.PHP");
source.onmessage=function(event)
{
   document.getElementById("result").innerHTML+=event.data + "<br />";
};

代码解释:  

  • 创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL(本例中是 "demo_sse.php")

  • 每接收到一次更新,就会发生 onmessage 事件

  • 当 onmessage 事件发生时,把已接收的数据推入 id 为 "result" 的元素中

 

  • 检测 Server-Sent 事件支持

在上面的 TIY 实例中,我们编写了一段额外的代码来检测服务器发送事件的浏览器支持情况:

if(typeof(EventSource)!=="undefined")
{   // Yes! Server-sent events support!   // Some code.....}else{    // Sorry! No server-sent events support..}
  • 服务器端代码实例

为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 PHP 和 ASP)。

服务器端事件流的语法是非常简单的。把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。

PHP 代码 (demo_sse.php):

<?phpheader('Content-Type: text/event-stream');header('Cache-Control: no-cache');$time = date('r');echo "data: The server time is: {$time}\n\n";flush();?>

ASP 代码 (VB) (demo_sse.asp):

<%Response.ContentType="text/event-stream"Response.Expires=-1Response.Write("data: " & now())
Response.Flush()%>

代码解释:

  • 把报头 "Content-Type" 设置为 "text/event-stream"

  • 规定不对页面进行缓存

  • 输出发送日期(始终以 "data: " 开头)

  • 向网页刷新输出数据

本文介绍的 HTML5 一些新特性就到这里,在后面一篇文章中,我们将会学习到 HTML5 的 canvas 知识。。学习了 HTML5 的新特性,能够帮助我们在进行前端开发时更加顺利,同时也可以借助一些前端开发工具Wijmo 是一款大而全面的前端 HTML5 / JavaScript UI控件集,能为企业应用提供更加灵活的操作体验,现已全面支持angular 2。


--结束END--

本文标题: HTML5 & CSS3初学者指南(3)

本文链接: https://www.lsjlt.com/news/189478.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5 & CSS3初学者指南(3)
    本文介绍了 HTML5 的一些新特性。主要包含以下几个方面:Web 存储地理位置拖放服务器发送事件 HTML5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据。它是通过一个网络浏览器作为客户端数据库实现的,它允许网页以键值对...
    99+
    2023-01-31
    初学者 指南
  • Kotlin初学者指南
    你好,世界Kotlin是一种静态类型语言,在JVM上运行,并且与现有Java代码具有100%的互操作性。对于大多数Java开发人员来说,下面的程序应该非常熟悉:包 com。bugsnag。科特林 ;公共 课&n...
    99+
    2023-06-06
  • JPA persistence.xml 文件初学者指南
    JPA (Java Persistence API) 是Java中用于对象关系映射(ORM)的规范。在使用JPA时,需要使用一个名为...
    99+
    2023-09-15
    JPA
  • #SQL初学者指南#学习笔记(一)
    Tip1:SQL语句在逻辑上应该类比于英语(状语后置)...是一种只关注关系型数据库的语言\nDML(Data Manipution Language)数据操纵语言,即对数据的操作;DDL(Data Def...
    99+
    2022-10-18
  • MYSQL初学者使用指南--(由MYSQL.CN转帖)
    MYSQL初学者使用指南有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接mysql、修改密码、增加用户等方面来学习一些mysql的常用命令。一、连接mysql。格式: mysql...
    99+
    2022-10-18
  • php学习,从初学者到专家的完整指南
    P跳转到PHP:从初学者到专家的完整指南在现代的Web开发中,熟练掌握PHP已经成为一个必备的技能。PHP是一种流行的服务器端编程语言,由于其易学易用和良好的扩展性而备受欢迎。PHP向开发者提供了许多有用的工具和内容,可以用于创建各种类型的...
    99+
    2023-05-14
  • 【初学者指南】在ASP.NET MVC 5中创建GridView
    介绍在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样。服务器端和客户端有许多可用的第三方库,这些库能够提...
    99+
    2022-10-18
  • Python初学者必备的文件读写指南
    一、如何将列表数据写入文件  ⾸先,我们来看看下⾯这段代码,并思考:这段代码有没有问题,如果有问题的话,要怎么改? li = ['pytho...
    99+
    2022-11-12
  • 阿里云服务器iPad编程初学者指南
    本文将为您提供有关在阿里云服务器上使用iPad进行编程的详细指南。阿里云服务器提供了许多功能强大的工具和环境,可以帮助您轻松地进行编程。 阿里云服务器iPad编程初学者指南:一、了解阿里云服务器阿里云服务器是一种虚拟化的计算资源,可以在阿...
    99+
    2023-11-14
    阿里 初学者 服务器
  • R语言初学者的一些常见报错指南
    目录前言第一类:工作路径问题未设定工作路径当前路径需要修改第二类:对象名或函数名问题未找到函数名报错函数名大小写问题未找到赋值对象对象赋值不规范第三类:符号问题中文逗号报错绝对路径的...
    99+
    2022-11-13
  • Shell编程:从初学者到专家的完整指南
    Shell编程是一种在Unix/Linux操作系统下进行编程的方式,它是一种强大的工具,可以帮助您自动化任务、处理大量数据和快速执行常见任务。本篇文章将为您提供一个从初学者到专家的完整指南,帮助您了解Shell编程的基础知识,掌握一些高级...
    99+
    2023-08-16
    laravel 学习笔记 shell
  • 掌握 JavaScript:从初学者到高级开发者的完整指南(一)
    JavaScript 基础知识 1.1 介绍1.2 引入方式1.3 基础语法1.3.1 书写语法1.3.2 变量1.3.3 数据类型和运算符 1.4 函数1.4.1 第一种定义格式1.4...
    99+
    2023-10-28
    javascript 开发语言 ecmascript 学习 java 前端
  • 初学者指南:如何在 Python 中使用文件缓存对象?
    Python 是一种高级编程语言,被广泛应用于 Web 开发、科学计算、人工智能等领域。在 Python 中,文件缓存对象是一种非常有用的工具,可以帮助我们在处理文件时提高程序的效率。本文将为初学者介绍如何在 Python 中使用文件缓存对...
    99+
    2023-07-11
    文件 缓存 对象
  • 初学思科指令(3)CDP协议
    CDP协议 show cdp :显示更新时间及保持时间; show cdp neighbors :  显示每个接口的邻居信息; show cdp interface :  显示每个启用CDP接口状态; &...
    99+
    2023-01-31
    思科 指令 协议
  • DBA入职指南学习笔记3
    数据库启动      加载参数文件(spfile、pfile)---->nomount状态      加载控制文件(*.ctl)           ---->mount状态      加载数据文件、Redo log日志文件    ----...
    99+
    2019-08-05
    DBA入职指南学习笔记3
  • 初学者指南:如何在ASP中快速打包Linux应用程序?
    ASP是一种动态网页开发技术,它可以让开发者在Web页面中使用服务器端脚本语言来生成动态内容。对于初学者来说,学习ASP的过程可能会遇到一些困难,比如如何在ASP中快速打包Linux应用程序。本文将介绍如何使用ASP来打包Linux应用程序...
    99+
    2023-10-13
    linux git 打包
  • 从初学者到专家:Java 数据类型和变量的完整指南
    目录 一、字面常量 1.1什么常量? 1.2常见的六种常量类型 二、数据类型 2.1什么是数据类型? 2.2基本数据类型: 2.3引用数据类型 三、变量 3.1什么是变量? 3.2变量的命名规则 3.3变量的作用域 3.4变量的被final...
    99+
    2023-08-31
    算法 java 笔记 ide
  • 阿里云服务器ESC初学者指南如何创建和管理初始账户密码
    阿里云服务器ESC(Elastic ComputeService)是一种弹性计算服务,可帮助用户快速、灵活地扩展计算资源。然而,对于初学者来说,如何创建和管理初始账户密码可能是一个挑战。本篇文章将详细介绍如何在阿里云服务器ESC中创建和管...
    99+
    2023-11-05
    阿里 账户 初学者
  • HTML5初学者实用的CSS代码有哪些
    这篇文章主要介绍“HTML5初学者实用的CSS代码有哪些”,在日常操作中,相信很多人在HTML5初学者实用的CSS代码有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HT...
    99+
    2022-10-19
  • PHP 开发者必读:学习笔记和存储技术的实用指南
    作为一名 PHP 开发者,学习笔记和存储技术是必不可少的一部分。在这篇文章中,我们将介绍一些实用的学习笔记和存储技术,帮助 PHP 开发者更加高效地开发。 一、学习笔记 Evernote Evernote 是一款非常流行的笔记应用,它...
    99+
    2023-09-02
    学习笔记 开发技术 存储
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作