Month: 9月 2022

浏览器的怪异模式和标准模式

怪异模式和标准模式

在很久以前的网络上,页面通常有两种版本:为网景(Netscape)的 Navigator 准备的版本,以及为微软(Microsoft)的 Internet Explorer 准备的版本。当 W3C 创立网络标准后,为了不破坏当时既有的网站,浏览器不能直接弃用这些标准。因此,浏览器采用了两种模式,用以把能符合新规范的网站和老旧网站区分开。

目前浏览器的排版引擎使用三种模式:怪异模式(Quirks mode)、接近标准模式(Almost standards mode)、以及标准模式(Standards mode)。在怪异模式下,排版会模拟 Navigator 4 与 Internet Explorer 5 的非标准行为。为了支持在网络标准被广泛采用前,就已经建好的网站,这么做是必要的。在标准模式下,行为即(但愿如此)由 HTML 与 CSS 的规范描述的行为。在接近标准模式下,只有少数的怪异行为被实现。

    

使用 HTML5 拖放 拖拽 drag drop API

HTML5 拖放 (DnD) API 意味着页面上的几乎任何元素都可以变为可拖动。在本文中,我们将介绍拖放的基础知识。

创建可拖动的内容 #

值得注意的是,在大多数浏览器中,文本选择、图像和链接是默认可拖动的。例如,如果拖动谷歌搜索上的谷歌标志,您将看到重影图像。随后可以将该图像拖放到地址栏、 <input type="file" /> 元素,甚至桌面上。要使其他类型的内容可拖动,您需要使用 HTML5 DnD API。

要使对象可拖动,请对该元素设置 draggable=true。几乎任何元素都可以支持拖动,包括图像、文件、链接、文件或页面上的任何标记。

在我们的示例中,我们将创建一个界面来重新排列一些列,它们已通过 CSS Grid 进行布局。这些列的基本标记如下所示,每个列的 draggable 属性均设置为 true 。…

js 调用 angularJs 的方法

方法一:通过controller来获取

var appElement = document.querySelector('[ng-controller=mainController]');

// 获取$scope变量:
var $scope = angular.element(appElement).scope(); 

// 如果先调用 Controller 里面的方法的话

$scope.somefunc('xxx');

// 改变了值之后还需要调用一下下面的方法, 才可以刷新最新改变的内容

$scope.$apply()

方法二:通过DOM操作获取

//通过DOM操作获取app对象
var element = angular.element($document.getElementById("app")); // app 是ng-app所在的DOM元素的id的值
//得到app对象,可以获取app的controller
var controller = element.controller();
//得到app对象,可以获取app的$scope
var scope = element.scope();
//调用$scope中的方法

谷歌悄悄在 Chrome 中添加了 HEVC:h265 视频支持

悄悄地,在支持页面上没有任何公告或更新的情况下,Google 修复了 Chrome 中的一个对视频流媒体行业具有重大影响的错误:终于启用了对 HEVC/H.265 视频内容的自适应流媒体的支持!

感谢 Bitmovin(Humble Brag,开个玩笑),我们在大约 6 年前提交了一份关于这件事的错误报告。经过“小”的等待,我们得到了 Chrome 104 现已正式支持的答案,并且经过一番调查还发现它默认为所有平台的 Chrome 105 启用,准备在野外使用。 

最后更新于 2022年10月26日 …

构建 HTTP 请求行的时候是怎么确定用什么版本的 HTTP 协议的?

目前主流的 HTTP 协议版本有 HTTP/1.1、HTTP/2、HTTP/3(实验性)。请求发生时具体使用的版本是由客户端主导、客户端和服务器共同协商决定的。

比如支持 HTTP/2 的客户端,会在 TLS 握手发起时,在 ALPN(Application-Layer Protocol Negotiation) 扩展中标明自己支持 h2 和 http/1.1,打开 curl 命令的调试模式就能看到:

如果服务器也支持 h2,就会告诉客户端:

不支持也同样会告诉:

浏览器使用 HTTP/2 也是这个原理。但是 HTTP/3 使用了 UDP,UDP 不需要握手,所以没法用和 HTTP/2 相同的方式来进行协商。而是反过来了,是起初先按照普通的 HTTP 1.1/2 进行请求,服务器从这些请求的响应头(alt-svc)中告诉客户端,自己是支持 h3 的。这样如果客户端也支持 h3。就可以在往后的请求中直接使用 h3,ma 是 max-age,表示超过这个时间就得忘掉这个域名是支持 h3

ubuntu中的django安装配置与操作

本文章向大家介绍ubuntu中的 django 安装配置与操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1 安装django,在安装前确保python已经安装,ubuntu中默认有安装的。我们只需要安装django即可,解压django压缩文件,进入解压后的文件夹,运行,python setup.py install即可安装django到python中。…