HTML5+CSS3+移动web 前端开发入门笔记(一)

千古前端图文教程

千古前端图文教程
HTML5+CSS3+移动web 前端开发入门笔记(一)_第1张图片

git的使用

Git是一个分布式版本控制系统,它的作用主要包括以下几个方面:

  1. 版本管理:Git可以跟踪文件的修改历史,记录每次提交的内容、时间和作者等信息。通过Git,开发人员可以轻松地查看和比较不同版本之间的差异,回滚到历史版本或者创建新的分支。

  2. 多人协作:Git可以支持多人协同开发,通过远程仓库进行代码的共享和同步。开发人员可以将自己的代码推送到远程仓库,也可以从远程仓库拉取他人的代码,并进行合并、解决冲突等操作。

  3. 分支管理:Git具有强大的分支管理功能,开发人员可以创建新的分支,在不影响主线开发的情况下独立进行特性开发、bug修复等工作。分支可以合并到主线或其他分支,方便团队成员进行并行开发和版本控制。

  4. 回滚与撤销:Git可以轻松地回滚到历史版本,恢复之前的代码状态。同时,Git还提供了撤销暂存、撤销修改等命令,使得开发人员可以快速纠正错误或者取消不需要的变更。

  5. 高效开发:通过使用Git,开发人员可以更加高效地进行代码开发和管理。不仅可以减少手动备份和版本管理的繁琐工作,还能够提供方便的代码共享、合并与冲突解决等功能,从而提高开发效率和团队协作能力。

Git作为一种强大的版本控制系统,可以帮助开发人员更好地管理代码、进行多人协作、追踪修改历史、回滚和撤销操作等,为软件开发过程提供了便利和高效性。

Git是一个版本控制系统,用于跟踪文件的变化并协同开发。下面是Git的基本使用方法:

  1. 初始化一个Git仓库:在要进行版本控制的项目目录下执行命令git init,创建一个新的Git仓库。

  2. 添加文件到暂存区:使用命令git add 将文件添加到暂存区,可以一次性添加多个文件或者使用git add .添加所有文件。

  3. 提交变更到版本库:使用命令git commit -m "commit message"将暂存区的变更提交到版本库,并附上一个描述性的提交信息。

  4. 查看仓库状态:使用命令git status可以查看当前仓库的状态,包括修改、添加和删除的文件等信息。

  5. 查看提交历史:使用命令git log可以查看提交历史,包括提交者、提交时间和提交信息等。

  6. 切换分支:使用命令git checkout 可以切换到指定的分支,可以使用git branch命令查看当前存在的分支。

  7. 创建分支:使用命令git branch 可以创建一个新的分支。

  8. 合并分支:使用命令git merge 可以将指定分支的修改合并到当前分支。

  9. 远程仓库操作:使用命令git remote add origin 可以将本地仓库与远程仓库关联,使用git push命令将本地提交推送到远程仓库,使用git pull命令将远程仓库的修改拉取到本地。

  10. 克隆远程仓库:使用git clone 可以克隆远程仓库到本地。

  11. 分支管理:使用git branch命令可以查看当前存在的分支,并使用git branch 命令创建一个新的分支。使用git checkout 可以切换到指定的分支。使用git merge 将指定分支的修改合并到当前分支。使用git branch -d 可以删除指定的分支。

  12. 撤销操作:使用git checkout -- 可以撤销对某个文件的修改,恢复到最后一次提交的状态。使用git reset HEAD 可以将已经add到暂存区的文件移出暂存区。

  13. 查看差异:使用git diff可以查看工作区与暂存区之间的差异。使用git diff HEAD可以查看工作区与最新的提交之间的差异。

  14. 标签管理:使用git tag命令可以查看当前存在的标签,并使用git tag 命令创建一个新的标签。使用git tag -a -m "tag message"可以创建一个带有描述信息的标签。使用git tag -d 可以删除指定的标签。

  15. 远程仓库操作:使用git remote add origin 可以将本地仓库与一个远程仓库关联。使用git push origin 将本地提交推送到远程仓库的指定分支。使用git pull origin 将远程仓库的修改拉取到本地的指定分支。

Web、网页、浏览器

Web是指全球广域网,也称为万维网。它是一个通过互联网进行信息交流和共享的系统。Web端指的是网页端,即我们在浏览器上访问的网页。

网页是构成网站的基本元素,由文字、图像和超链接等元素组成。除了这些常见元素,网页还可以包含音频、视频和Flash等多媒体内容。每当我们在浏览器中输入网址并打开一个页面时,就是在访问一个网页。

浏览器是网页运行的平台,常见的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、Opera等。浏览器负责解析和呈现网页的内容,同时支持用户与网页之间的交互操作。

Web 标准

Web标准指的是一系列的网页设计技术规范,包括HTML、CSS和JavaScript等。这些技术规范由W3C(World Wide Web Consortium,世界网页联盟)制定,旨在确保不同浏览器在解析网页时能够一致地显示页面内容,并提高网页的可访问性、可用性和可维护性。

具体来说,Web标准主要分为三个方面:

  1. 结构标准(Structural standards):指HTML和XML等标记语言规范,用于定义网页的结构和内容。

  2. 展示标准(Presentation standards):指CSS等样式表技术规范,用于定义网页的展示效果。

  3. 行为标准(Behavioral standards):指JavaScript等脚本语言规范,用于定义网页与用户之间的交互行为。

遵循Web标准可以提高网站的可访问性,确保页面在不同浏览器、设备和操作系统上都能够正确展示,同时也有助于提高页面的性能和优化SEO(搜索引擎优化)。

Web标准是建立在互联网上的万维网系统中的重要组成部分,它对于网站开发者、设计师和内容创作者来说都非常重要。

Web标准:制作网页要遵循的规范。

Web标准不是某一个标准,而是由W3C组织和其他标准化组织制定的一系列标准的集合。

1、Web标准包括三个方面:

结构标准(HTML):用于对网页元素进行整理和分类。

表现标准(CSS):用于设置网页元素的版式、颜色、大小等外观样式。

行为标准(JS):用于定义网页的交互和行为。

根据上面的Web标准,可以将 Web前端分为三层,如下。

2、Web前端分三层:

HTML(HyperText Markup Language):超文本标记语言。从语义的角度描述页面的结构。相当于人的身体组织结构。
CSS(Cascading Style Sheets):层叠样式表。从审美的角度美化页面的样式。相当于人的衣服和打扮。
JS:JavaScript。从交互的角度描述页面的行为。相当于人的动作,让人有生命力。
HTML5+CSS3+移动web 前端开发入门笔记(一)_第2张图片

浏览器

浏览器由以下几个主要部分组成:

  1. 用户界面(User Interface):包括地址栏、菜单栏、工具栏等,用于展示和与用户交互。

  2. 渲染引擎(Rendering Engine):负责解析HTML、CSS等页面元素,并将它们渲染成可视化内容。

  3. JavaScript解释器(JavaScript Interpreter):用于解释JavaScript代码并执行它们。

  4. 浏览器引擎(Browser Engine):用于协调渲染引擎和JavaScript解释器之间的相互作用。

  5. 数据存储(Data Storage):包括浏览器缓存、Cookie等,用于存储网站数据、用户信息等。

  6. 扩展框架(Extension Framework):允许开发人员为浏览器编写扩展程序,添加自定义功能和服务。

  7. 网络组件(Networking Components):用于处理网络通信,包括HTTP请求和响应等。

  8. 插件(Plugins):用于支持浏览器中的多媒体文件,比如Flash、Java等。

浏览器的不同部分紧密相连,并协同工作以提供用户一个完整的互联网浏览体验。当用户输入一个网页URL时,浏览器会使用网络组件向服务器发送请求,然后解析并渲染页面内容,并且通过可视化界面,将这些内容呈现给用户。 同时,它还会处理JavaScript代码和插件等附加功能。

渲染引擎(即:浏览器内核)和JS 引擎

  1. 渲染引擎(浏览器内核):渲染引擎负责解析HTML、CSS等页面标记语言,并将其呈现为可视化的内容。它负责处理网页布局、样式、图像加载、字体渲染等任务。不同浏览器使用不同的渲染引擎,如WebKit(Safari和Chrome使用)、Gecko(Firefox使用)和Blink(Opera和新版Chrome使用)。

  2. JavaScript引擎:JavaScript引擎用于解释和执行JavaScript代码。它将JavaScript代码转换为计算机能够理解和执行的指令。常见的JavaScript引擎有V8(Chrome和Node.js使用)、SpiderMonkey(Firefox使用)、JavaScriptCore(Safari使用)等。JavaScript引擎的性能对于浏览器的整体速度和用户体验非常重要。

渲染引擎和JavaScript引擎紧密合作,相互配合以显示网页内容和处理网页中的交互逻辑。用户在浏览器中打开网页时,渲染引擎首先解析HTML和CSS,并构建网页的文档对象模型(DOM)和渲染对象模型(Render Tree)。随后,JavaScript引擎解析和执行网页中的JavaScript代码,操作DOM并与渲染引擎交互。最终,渲染引擎根据DOM和CSS规则计算布局和样式,并将网页渲染到浏览器窗口中供用户查看和交互。

渲染引擎和JavaScript引擎在浏览器中通常是独立的模块。它们之间相互协作以实现页面的加载、解析、渲染和交互。

当用户在浏览器中输入网址或单击链接时,浏览器会使用网络组件向服务器发送HTTP请求并获取响应。如果响应包含HTML文档,那么浏览器就会把这个 HTML交给渲染引擎处理。

渲染引擎的主要任务是将 HTML 和 CSS 解析成可视化的文档。它会读取 HTML中的所有标签,然后使用规则来将标签转换为屏幕上的元素(如文字、图片、表格等)。同时,渲染引擎会通过CSS样式表定义的规则来计算每个元素的位置、大小、颜色和透明度等属性。

当渲染引擎解析到 JavaScript 代码时,它会将 JavaScript 代码交给 JavaScript 引擎处理。JavaScript 引擎会解释并执行 JavaScript 代码,根据 JavaScript 代码修改文档对象模型(DOM),以及更新渲染树(Render Tree)和网页的呈现。

同时,JavaScript 代码也可以触发其他操作,如发送 Ajax 请求、设置 Cookie、存储本地数据等。这些操作都可能会导致浏览器与服务器再次交互,重新加载或更新页面内容。

渲染引擎和 JavaScript 引擎在浏览器中扮演着重要角色。它们通过相互协作,将网页呈现出来,并且实现各种交互功能。

工作原理HTML5+CSS3+移动web 前端开发入门笔记(一)_第3张图片

1、User Interface(UI界面):包括地址栏、前进/后退按钮、书签菜单等。也就是浏览器主窗口之外的其他部分。

2、Browser engine (浏览器引擎):用来查询和操作渲染引擎。是UI界面和渲染引擎之间的桥梁。

3、Rendering engine(渲染引擎):用于解析HTML和CSS,并将解析后的内容显示在浏览器上。

4、Networking (网络模块):用于发送网络请求。

5、JavaScript Interpreter(JavaScript解析器):用于解析和执行 JavaScript 代码。

6、UI Backend(UI后端):用于绘制组合框、弹窗等窗口小组件。它会调用操作系统的UI方法。

7、Data Persistence(数据存储模块):比如数据存储 cookie、HTML5中的localStorage、sessionStorage。

浏览器的工作原理:新式网络浏览器幕后揭秘

浏览器的工作原理:新式网络浏览器幕后揭秘

HTML

编辑器相关
前端开发的编辑器软件,我首先推荐 VS Code,其次推荐Sublime Text。

有人说 WebStorm 也不错?但真实情况是,自从VS Code 问世之后,用 WebStorm 的人越来越少了。

PS:文件的后缀名不能决定文件格式,只能决定打开文件打开的方式。

HTML全称为超文本标记语言(HyperText Markup Language),是一种描述性的标记语言,而非编程语言。

HTML的作用是描述文档的语义。超文本有两层含义:一方面,它包含图片、音频、视频、动画等超出纯文本限制的内容;另一方面,它可以通过超链接文本实现文件之间的跳转和与其他主机的文件连接。

标记语言指的是一套标记标签。例如,

 标签表示超链接, 标签表示图片,

标签表示一级标题等。 这些标签组成网页元素,通过浏览器解析后呈现给用户。

与编程语言不同,标记语言没有编译过程,HTML标签直接由浏览器解析执行。

HTML负责描述文档的语义,HTML格式的文件是一个纯文本文件(通常以.txt扩展名命名),使用标签描述语义。这些标签在浏览器页面上无法直观显示,因此被称为"超文本标记语言"。

在学习HTML时,需要了解各种标签,这些标签赋予文本不同的语义。例如,

HTML5+CSS3+移动web 前端开发入门笔记(一)_第4张图片

HTML的专有名词

网页 :由各种标记组成的一个页面就叫网页。
主页(首页) : 一个网站的起始页面或者导航页面。
标记: 比如

称为开始标记 ,

称为结束标记,也叫标签。每个标签都规定好了特殊的含义。 元素:比如

内容

称为元素. 属性:给每一个标签所做的辅助信息。 XHTML:符合XML语法标准的HTML。 DHTML:dynamic,动态的。javascript + css + html合起来的页面就是一个 DHTML。 HTTP:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP:邮件传输协议,FTP:文件传输协议。

书写第一个 HTML 页面

HTML5+CSS3+移动web 前端开发入门笔记(一)_第5张图片
HTML5+CSS3+移动web 前端开发入门笔记(一)_第6张图片
HTML5+CSS3+移动web 前端开发入门笔记(一)_第7张图片

这是一个包含三个基本元素的HTML页面:

  1. : 定义页面使用的文档类型,通常简写为,表示这个页面符合 HTML5 标准。

  2. : 标签定义页面的根元素,同时指定网页语言为英语(“en”)。

  3. 元素包含一些可以用 meta 标签来定义的元数据,通常包括页面标题、字符集、视口设置等。在这个示例中,我们设置了标题为 “Document”,同时指定字符集为 UTF-8。

  4. 元素包含了页面的主要内容。在这个示例中,我们添加了一个三级标题

    ,一个图片元素和一个超链接元素

  5. 元素用于在页面上显示图片。它有两个必需的属性:srcaltsrc指定图片的 URL 地址,而 alt 提供了一个替代文本,在图片无法显示时会显示此文本。

  6. 元素用于创建超链接。href属性指定链接目标的URL,用户点击时就会打开该URL对应的页面。

HTML结构详解

HTML5+CSS3+移动web 前端开发入门笔记(一)_第8张图片

文档声明头

任何一个标准的HTML页面,第一行一定是一个以开头的语句。这一行,就是文档声明头,即 DocType Declaration,简称DTD。

DTD可告知浏览器文档使用哪种 HTML 或 XHTML 规范。

HTML4.01有以下6种规范:

  1. HTML 4.01 Strict:严格模式,不允许使用任何表现性、排版或者结构性的标签和属性;
  2. HTML 4.01 Transitional:过度模式,允许使用一些过渡标签和属性以便与之前版本的页面兼容;
  3. HTML 4.01 Frameset:框架模式,专门用于页面中包含框架(frameset)的情况;
  4. XHTML 1.0 Strict:严格模式,要求网页符合XML的语法规范;
  5. XHTML 1.0 Transitional:过渡模式,允许使用一些过渡标签和属性以便与之前版本的页面兼容;
  6. XHTML 1.0 Frameset:框架模式,专门用于页面中包含框架(frameset)的情况。

需要注意的是,XHTML 1.0规范要求页面中所有标签必须是小写形式,并且要有开始和结束标签。而HTML 4.01对大小写并没有限制,也可以使用自闭合标签。

页面语言 lang

下面这行标签,用于指定页面的语言类型:


最常见的语言类型有两种:

en:定义页面语言为英语。

zh-CN:定义页面语言为中文

头标签 head

HTML5的比较完整的骨架:
DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta name="Author" content="">
    <meta name="Keywords" content="厉害很厉害" />
    <meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />
    <title>Documenttitle>
head>
<body>

body>
html>
面试题:

问:网页的head标签里面,表示的是页面的配置,有什么配置?
答:字符集、关键词、页面描述、页面标题、IE适配、视口、iPhone小图标等等。

头标签内部的常见标签如下:

  • </code>:指定整个网页的标题,在浏览器最上方显示。</li> <li><code><base></code>:为页面上的所有链接规定默认地址或默认目标。</li> <li><code><meta></code>:提供有关页面的基本信息。</li> <li><code><body></code>:用于定义HTML文档所要显示的内容,也称为主体标签。我们所写的代码必须放在此标签内。</li> <li><code><link></code>:定义文档与外部资源的关系。</li> </ul> <h5>meta标签:</h5> <p><a href="http://img.e-com-net.com/image/info8/4214159b15da4dc5b0fd866d8106c098.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/4214159b15da4dc5b0fd866d8106c098.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第9张图片" width="650" height="392" style="border:1px solid black;"></a></p> <p><code><meta></code>表示“元”。“元”配置,就是表示<strong>基本的配置项目</strong>。</p> <p>常见的几种meta标签如下:</p> <ol> <li>字符集<code>charset</code>:</li> </ol> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Content-Type<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/html;charset=UTF-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>字符集用meta标签中的charset定义,charset就是character set(即“字符集”),即网页的编码方式。</p> <p>字符集(Character set)是多个字符的集合。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。</p> <p>上面这行代码非常关键,是必须要写的代码,否则可能导致乱码。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就会显示乱码。</p> <p>utf-8是目前最常用的字符集编码方式,常用的字符集编码方式还有gbk和gb2312等。关于“编码方式”,我们在下一段会详细介绍。</p> <ol start="2"> <li>视口<code>viewport</code>:</li> </ol> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width, initial-scale=1.0<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p><code>width=device-width</code>表示视口宽度等于屏幕宽度。</p> <p>视口(viewport)这个知识点,初学者还比较难理解,以后学Web移动端的时候会用到。</p> <ol start="3"> <li>定义“关键词”:</li> </ol> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Keywords<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>这些关键词就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。</p> <ol start="4"> <li>定义“页面描述”:</li> </ol> <p>meta除了可以设置字符集,还可以设置关键字和页面描述。</p> <p>只要设置Description页面描述,那么百度搜索结果就能够显示这些语句,这个技术叫做SEO(search engine optimization,搜索引擎优化)。</p> <p>设置页面描述的举例:<br> <a href="http://img.e-com-net.com/image/info8/22a76019160d48b5b7c24d1de19a9c8d.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/22a76019160d48b5b7c24d1de19a9c8d.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第10张图片" width="650" height="123" style="border:1px solid black;"></a></p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Description<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span> </code></pre> <p>效果如下:</p> <p>上面的几种<code><meta></code>标签都不用记,但是另外还有一个<code><meta></code>标签是需要记住的:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>refresh<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>3;http://www.baidu.com<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p>上面这个标签的意思是说,3秒之后自动跳转到百度页面。</p> <p><code><title></code>标签:</p> <p>用于设置网页标题:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>title</span><span class="token punctuation">></span></span>网页的标题<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>title</span><span class="token punctuation">></span></span> </code></pre> <p><code><title></code>标签也有助于SEO搜索引擎优化。</p> <p><code><base></code>标签:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>base</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> </code></pre> <p><code><base></code>标签用于指定基础的路径。指定之后,所有的a链接都是以这个路径为基准。</p> <p>### <body>标签<br> <a href="http://img.e-com-net.com/image/info8/08bcc1fb56f845eb98b57204df9207e2.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/08bcc1fb56f845eb98b57204df9207e2.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第11张图片" width="650" height="728" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/c42cdd6372fc4fcabd4db409d82623d6.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/c42cdd6372fc4fcabd4db409d82623d6.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第12张图片" width="650" height="236" style="border:1px solid black;"></a></p> <h3>计算机编码</h3> <p>计算机编码是将字符、数字、符号等信息转换为计算机可以理解和处理的二进制形式的过程。计算机使用二进制编码来表示和存储数据。</p> <p>在计算机编码中,最基本的单位是比特(bit),它可以表示0或1两种状态。多个比特组合在一起可以表示更复杂的信息。常用的比特组合单位有字节(byte),由8个比特组成,可以表示256种不同的状态。</p> <p>为了能够表示不同的字符和符号,计算机采用了许多不同的编码方案。其中最常见的编码方案是ASCII(美国标准信息交换码),它使用一个字节(8个比特)来表示一个字符,包括英文字母、数字、标点符号和一些控制字符。</p> <p>随着计算机的发展和国际化需求,ASCII编码无法满足所有字符的表示,于是出现了许多其他的编码方案,如GB2312、ISO-8859等。但是这些编码方案仍然只能表示有限的字符集。</p> <p>为了解决字符集的扩展和统一的问题,出现了Unicode编码。Unicode采用了更大的编码空间,可以表示几乎所有的已知字符。最常用的Unicode编码方案是UTF-8,它使用可变长度的编码方式,根据字符的不同而使用不同长度的字节序列。</p> <p>除了字符编码外,计算机还有其他的编码形式,如图像编码、音频编码、视频编码等,它们将图像、声音、视频等非文本数据转换为二进制形式,以便计算机进行处理和存储。</p> <p>计算机编码是将信息转换为二进制形式的过程,通过不同的编码方案可以表示不同的字符和数据。这些编码方案在计算机科学和信息技术领域中起着重要的作用。</p> <p>当涉及计算机编码时,还有一些重要的概念和技术需要了解:</p> <ol> <li> <p>字符集(Character Set):字符集是一组字符的集合。常见的字符集包括ASCII、Unicode和UTF-8。字符集确定了可以在计算机中表示的字符范围。</p> </li> <li> <p>编码方式(Encoding):编码方式是指将字符集中的字符转换为二进制形式的规则。不同的编码方式使用不同的比特模式来表示字符。常见的编码方式有ASCII编码、UTF-8编码等。</p> </li> <li> <p>压缩编码(Compression Encoding):压缩编码是一种将数据进行压缩以减小其存储空间或传输带宽的方法。常见的压缩编码算法有gzip、zip、LZ77、LZW等。</p> </li> <li> <p>错误检测与纠正编码(Error Detection and Correction Coding):错误检测与纠正编码是一种在数据传输或存储过程中用于检测和纠正错误的方法。常见的错误检测与纠正编码算法有奇偶校验、循环冗余校验(CRC)、汉明码等。</p> </li> <li> <p>URL编码(URL Encoding):URL编码是一种将URL中的特殊字符转换为特定格式的编码方式。它主要用于防止URL中包含的特殊字符干扰对URL的解析和处理。</p> </li> <li> <p>图像编码(Image Coding):图像编码是一种将图像数据转换为压缩格式的方法,以便减小存储空间或传输带宽。常见的图像编码算法有JPEG、PNG等。</p> </li> <li> <p>音频编码(Audio Coding):音频编码是一种将音频数据转换为压缩格式的方法,以便减小存储空间或传输带宽。常见的音频编码算法有MP3、AAC等。</p> </li> <li> <p>视频编码(Video Coding):视频编码是一种将视频数据转换为压缩格式的方法,以便减小存储空间或传输带宽。常见的视频编码算法有H.264、H.265等。</p> </li> </ol> <p>这些编码技术在计算机系统中起着至关重要的作用,通过使用适当的编码方式和算法,可以有效地表示、处理和传输各种类型的数据。</p> <p><strong>计算机,不能直接存储文字,存储的是编码。</strong></p> <p>计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们可以定义一套规则来表示。假如:A用110表示,B用111表示等。</p> <p>ASCII码: 美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。 美国的国家语言是英语,只要能表示0-9、a-z、A-Z、特殊符号。</p> <p>ANSI编码: 每个国家为了显示本国的语言,都对ASCII码进行了扩展。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。例如: 中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。 日本的ANSI编码是JIS编码。 台湾的ANSI编码是BIG5编码(繁体)。</p> <p>GBK: 对GB2312进行了扩展,用来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码位。K的含义就是“扩展”。</p> <p>Unicode编码(统一编码): 用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。A的Unicode编码是0000 0000 0000 0000 0000 0000 0100 0000</p> <p>UTF-8(Unicode Transform Format)编码: 根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用2个字节表示。</p> <p>毫无疑问,开发中,都用UTF-8编码吧,准没错。</p> <p>中文能够使用的字符集两种:</p> <p>第一种:UTF-8。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语……</p> <p>第二种:GBK(对GB2312进行了扩展)。gb2312 是国标,是中国的字库,里面仅涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。</p> <p>字库规模: UTF-8(字很全) > gb2312(只有汉字)</p> <p><strong>重点1:避免乱码</strong></p> <p>我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码(重点)。</p> <p>拿 sublime编辑器举例,当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: 文件→ set File Encoding to → Chinese Simplified(GBK)。VS Code 的道理一样。</p> <p><strong>重点2:UTF-8和gb2312的比较</strong></p> <p>保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)</p> <p>总结:</p> <p>UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿;<br> gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。<br> 列出2个使用情形:</p> <p>1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。 2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。</p> <p>我们亲测:qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。新华网藏语频道,使用的是UTF-8,保证字符集的数量。我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到meta标签中的charset属性即可。<br> 那么,我们为什么可以查看网页的源代码呢?因为这个打开的html网页已经存到我的临时文件夹里了,临时文件夹里的html是纯文本文件,纯文本文件自然可以查看网页的源代码。</p> <h3>HTML的规范</h3> <p>HTML不区分大小写,但HTML的标签名、类名、标签属性、大部分属性值建议统一用小写。</p> <p>HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符,比如dos系统)</p> <h4>1. 编写XHTML的规范:</h4> <ul> <li> <p>所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:<code><h1><font></font></h1></code></p> </li> <li> <p>所有的标记都必须小写。</p> </li> <li> <p>所有的标签都必须闭合。</p> <ul> <li> <p>双标签:<code><span></span></code></p> </li> <li> <p>单标签:<code><br></code> 建议写成 <code><br /></code> <code><hr></code> 建议转成 <code><hr /></code>,还有 <code><img src="URL" /></code></p> </li> </ul> </li> <li> <p>所有的属性值必须加引号。例如:<code><font color="red"></font></code></p> </li> <li> <p>所有的属性必须有值。例如:<code><hr noshade="noshade"></code>、<code><input type="radio" checked="checked" /></code></p> </li> <li> <p>XHTML文档开头必须要有DTD文档类型定义。</p> </li> </ul> <h4>2. HTML的基本语法特性</h4> <ul> <li> <p>HTML对换行不敏感,对tab不敏感。HTML只在乎标签的嵌套结构,和换行、tab无关。</p> </li> <li> <p>空白折叠现象:HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。</p> </li> <li> <p>标签要严格封闭。标签不封闭会导致错误的结果。</p> </li> <li> <p><a href="http://img.e-com-net.com/image/info8/af8a81f5c33b48f799824836a2f7482c.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/af8a81f5c33b48f799824836a2f7482c.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第13张图片" width="650" height="324" style="border:1px solid black;"></a><br> (2)空白折叠现象</p> </li> </ul> <p>HTML中所有的文字之间,如果有空格、换行、tab都将被折叠为一个空格显示。</p> <p>举例如下:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>This is an example.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> </code></pre> <p>以上代码中,“This is” 和 “an example.” 之间有多个空格,但在页面上只会显示为一个空格。</p> <p>(3)标签要严格封闭</p> <p>标签不封闭的结果是灾难性的。</p> <p>标签不封闭的举例如下:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>This is a paragraph. <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span><span class="token punctuation">></span></span>This is a span.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> </code></pre> <p>以上代码中,<code><p></code>标签没有正确闭合,而<code><span></code>标签却在<code><p></code>标签内部结束。这样的错误嵌套会导致页面结构混乱,影响网页的显示效果和功能。正确的写法应该是:</p> <pre><code class="prism language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>This is a paragraph.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span><span class="token punctuation">></span></span>This is a span.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span> </code></pre> <p><a href="http://img.e-com-net.com/image/info8/0cd8cc4948a141e58fef66047b2b6cc7.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/0cd8cc4948a141e58fef66047b2b6cc7.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第14张图片" width="581" height="301" style="border:1px solid black;"></a><br> <a href="http://img.e-com-net.com/image/info8/dbb2cff332cf4b0cb7e3840aa46e6f2a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/dbb2cff332cf4b0cb7e3840aa46e6f2a.jpg" alt="HTML5+CSS3+移动web 前端开发入门笔记(一)_第15张图片" width="650" height="188" style="border:1px solid black;"></a></p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1710546466566647808"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(前端,前端,html5,css3)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1833406654624919552.htm" title="前端Axios搭配Vue(认清Axios,Axios结合Vue发出Ajax请求,返回JSON数据案例!简洁易懂。)" target="_blank">前端Axios搭配Vue(认清Axios,Axios结合Vue发出Ajax请求,返回JSON数据案例!简洁易懂。)</a> <span class="text-muted">酸奶代码</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a> <div>一.什么是Axios1.axios是独立于vue的一个项目,不是Vue的一部分2.axios通常和Vue一起使用,实现Ajax操作3.Axios是一个基于promise的HTTP库axios官方文档二.引入Axios库文件1.可以直接引用2.可以下载Axios的js文件导入下载此js文件三.使用Axios配合Vue发出Ajax请求案例在Vue中使用Axios,向服务器发送Ajax请求,将获取的js</div> </li> <li><a href="/article/1833403380370862080.htm" title="Springboot 项目中引入WebSocket后,单元测试出现错误,前端开发揭秘" target="_blank">Springboot 项目中引入WebSocket后,单元测试出现错误,前端开发揭秘</a> <span class="text-muted">杭州湾Java仔</span> <a class="tag" taget="_blank" href="/search/2024%E5%B9%B4%E5%89%8D%E7%AB%AF%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">2024年前端程序员</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>java.lang.IllegalStateException:FailedtoloadApplicationContextatorg.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:12</div> </li> <li><a href="/article/1833389517101428736.htm" title="Java 上传读取Excel文件" target="_blank">Java 上传读取Excel文件</a> <span class="text-muted">Ben_1043556915</span> <a class="tag" taget="_blank" href="/search/Java%E8%BF%9B%E9%98%B6/1.htm">Java进阶</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Web中導入Excel文件ExtJs前端代碼://=========上傳Excel=============================uploadPanel=newExt.form.FormPanel({fileUpload:true,id:'fileUploadForm',frame:true,labelAlign:'right',buttonAlign:'center',labelWid</div> </li> <li><a href="/article/1833374017902440448.htm" title=".NetCore+vue3上传图片 Multipart body length limit 16384 exceeded." target="_blank">.NetCore+vue3上传图片 Multipart body length limit 16384 exceeded.</a> <span class="text-muted">鱼是一只鱼啊</span> <a class="tag" taget="_blank" href="/search/Vue/1.htm">Vue</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0/1.htm">图片上传</a><a class="tag" taget="_blank" href="/search/vue3/1.htm">vue3</a><a class="tag" taget="_blank" href="/search/el-upload/1.htm">el-upload</a> <div>实现目标。点击图片上传头像效果图前端部分图片上传关键代码更换头像上传js部分import{ref,reactive,onMounted}from"vue";import{uploadAvatar}from"../../api/auth";import{ElMessage}from"element-plus";exportdefault{setup(){constfit=ref("cover");c</div> </li> <li><a href="/article/1833356121453195264.htm" title="Vue中使用pdfJs预览PDF、图片" target="_blank">Vue中使用pdfJs预览PDF、图片</a> <span class="text-muted">viceen</span> <a class="tag" taget="_blank" href="/search/vue3%2Bts-%E8%BF%90%E7%BB%B4/1.htm">vue3+ts-运维</a><a class="tag" taget="_blank" href="/search/vue%E9%A1%B9%E7%9B%AE-%E8%BF%90%E7%BB%B4/1.htm">vue项目-运维</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>Vue中使用pdfJs预览PDF、图片pdf.js是一个使用HTML5构建的可移植文档格式库。它可以帮助我们在浏览器中构建pdf文档,实现在线查看pdf文件的功能。实现步骤如下:1.下载pdfJs到本地(官网下载地址),放到项目根目录下的静态资源目录static文件夹内,将文件命名为pdfJs。如下图使用iframe打开或者需要注意的是:file参数中默认只允许传简单路径比如:http://www</div> </li> <li><a href="/article/1833321507116380160.htm" title="随笔记录git提交出错和原生js以JSON格式请求接口导出Excel" target="_blank">随笔记录git提交出错和原生js以JSON格式请求接口导出Excel</a> <span class="text-muted">山丘lemon</span> <div>GIT提交代码出错Fileexists.原文链接https://www.cnblogs.com/sweetbullet/p/9889997.html前端js导出,参数以json格式发送post请求原文链接https://www.cnblogs.com/sweetbullet/p/9843178.html</div> </li> <li><a href="/article/1833270524688560128.htm" title="Dojo-CodeLab: JavaScript与Dojo框架学习与实践指南" target="_blank">Dojo-CodeLab: JavaScript与Dojo框架学习与实践指南</a> <span class="text-muted">陈马登Morden</span> <div>本文还有配套的精品资源,点击获取简介:Dojo-CodeLab是一个提供学习和实践JavaScript及其Dojo框架的项目,专注于为初学者提供无需特定环境限制的编程平台。通过开发一个简单的计算器应用,学习者将掌握JavaScript基础语法和Dojo工具集的使用,涵盖变量、数据类型、控制结构、函数、对象、数学运算、事件处理和DOM操作等关键概念。本项目通过实际编码练习帮助学习者加深对前端开发的理</div> </li> <li><a href="/article/1833268382229688320.htm" title="2023前端面试时遇到的面试题" target="_blank">2023前端面试时遇到的面试题</a> <span class="text-muted">No regrets, no return</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>2023前端面试时遇到的面试题1.数组有哪些方法push、pop、unshift、shift、join、forEach、filter、map、find…2.filter和some返回的分别是一个什么filter返回的是一个数组,some返回的是一个布尔值3.es6新增了哪些方法let和cconst、模板字符串()、扩展运算符、for…of、解构、箭头函数、symbol数据类型、Set和Map方法等</div> </li> <li><a href="/article/1833264719931207680.htm" title="微信小程序简易弹幕组件(uniapp)" target="_blank">微信小程序简易弹幕组件(uniapp)</a> <span class="text-muted">Vivqst</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>最终效果图如下:1.弹幕从弹幕区域外的右边滚动到左边,那么每条弹幕的实际滚动路径长度为当前弹幕的实际宽度+整个弹幕区域的宽度组件代码如下:{{item.text}}{{currentBullet}}2.本例中弹幕区域的宽度为当前屏幕的宽度。弹幕的滚动效果使用css3的animation实现,使用translateX来实现水平位移的变化。弹幕使用绝对定位初始时在屏幕的最左边(left:0),动画开始</div> </li> <li><a href="/article/1833257537026224128.htm" title="利用PHP和Selenium自动化采集数据、实现爬虫抓取" target="_blank">利用PHP和Selenium自动化采集数据、实现爬虫抓取</a> <span class="text-muted">IT大数据小助手</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a> <div>随着互联网时代的到来,抓取互联网上的数据成为越来越重要的工作。在web前端开发领域,我们经常需要获取页面中的数据来完成一系列的交互操作,为了提高效率,我们可以将这个工作自动化。本文将介绍如何利用PHP和Selenium进行自动化数据采集和爬虫抓取。一、什么是SeleniumSelenium是一个免费的开源自动化测试工具,主要用于自动化测试Web应用程序,可以模拟真实的用户行为,实现自动交互。使用S</div> </li> <li><a href="/article/1833255014102036480.htm" title="【WebKit深度解析】HTML5支持全景与实践指南" target="_blank">【WebKit深度解析】HTML5支持全景与实践指南</a> <span class="text-muted">2401_85812026</span> <a class="tag" taget="_blank" href="/search/webkit/1.htm">webkit</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>标题:【WebKit深度解析】HTML5支持全景与实践指南WebKit作为许多现代浏览器的核心技术,对HTML5的支持程度直接关系到Web应用的性能和体验。HTML5是构建现代Web应用的基石,提供了丰富的特性和API。本文将深入探讨WebKit对HTML5的支持程度,并通过实际代码示例,展示如何在WebKit浏览器上充分利用HTML5的强大功能。1.WebKit与HTML5概述WebKit是一个</div> </li> <li><a href="/article/1833252619339001856.htm" title="【Uniapp】前端面试题" target="_blank">【Uniapp】前端面试题</a> <span class="text-muted">菜鸟una</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%85%AB%E8%82%A1%E6%96%87%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">前端八股文面试题</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>Uniapp部分文章目录Uniapp部分1.Uniapp的页面生命周期和Vue的生命周期有何区别?1)Vue的生命周期2)Uniapp的页面生命周期3)区别2.Uniapp的rpx转换px的公式?3.Uniapp的tabbar自定义,怎么实现突起home标?1)配置自定义tabBar2)创建自定义tabBar组件3)突出显示“home”标4.Uniapp的tabbar自定义,怎么实现隐藏原生tab</div> </li> <li><a href="/article/1833245435347693568.htm" title="「CSS思维」组件化VS原子化" target="_blank">「CSS思维」组件化VS原子化</a> <span class="text-muted">weixin_33810006</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ViewUI/1.htm">ViewUI</a> <div>废话从我两个月前,在掘金发第一篇文章到现在,关注数每天都在以至少20个人数的量持续增长,现在马上就要突破1000大关了。可是自己却断更了很久了,想想很对不起我的粉丝们(我是想当前端网红想疯了哈哈)。于是逼迫自己写了一篇这篇,我一直想写的文章。我是一个爱折腾设计的前端,我进公司的职位也是“偏体验的前端”。从这些标签可以看到我是一个以重构(“切图仔”)出道的前端。我喜欢的是所见即所得的代码体验,而不是</div> </li> <li><a href="/article/1833243541623631872.htm" title="【前端】 如何在 Vue.js 中使用 Mock 数据:教程与技巧" target="_blank">【前端】 如何在 Vue.js 中使用 Mock 数据:教程与技巧</a> <span class="text-muted">帅比九日</span> <a class="tag" taget="_blank" href="/search/%E8%B8%A9%E8%BF%87%E7%9A%84%E5%9D%91/1.htm">踩过的坑</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>如何在Vue.js中使用Mock数据:教程与技巧在开发过程中,为了测试和开发前端功能,你常常需要用到模拟(mock)数据。Vue.js提供了灵活的方式来处理数据请求和更新,但在没有真实后端的情况下,我们可以使用Mock数据来代替真实API请求。本文将介绍如何在Vue.js项目中设置和使用Mock数据。1.使用Mock数据的必要性Mock数据在以下场景中非常有用:前端开发阶段:在后端API尚未完成时</div> </li> <li><a href="/article/1833242407018262528.htm" title="项目架构设计" target="_blank">项目架构设计</a> <span class="text-muted">先熬半个月</span> <div>架构概述:架构共分为5层,访问层,接入层,网关层,服务层,数据层服务架构涉及26个技术点,部署架构7个技术点服务架构1.LVS:四层负载均衡,将用户分发到不同Nginx服务器上2.Nginx:是一个高性能的HTTP和反向代理的web服务器,用于部署前端应用3.Keepalived:高可用,此处指的是集群4.JWT:全称:JavaWebToken,用户身份校验,鉴权5.SpringCloudGetw</div> </li> <li><a href="/article/1833232572784668672.htm" title="基于Spring的消息推送实战(Websocket和前端轮询实现)" target="_blank">基于Spring的消息推送实战(Websocket和前端轮询实现)</a> <span class="text-muted">星月梦瑾</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>基于Spring的消息推送实战(Websocket和前端轮询实现)本文介绍了基于Spring的消息推送实现方法,主要介绍了websocket实时消息推送方法(ServerEndpoint方式实现),以及前端客户端轮询方式的消息推送。一、消息推送常见的消息推送方式有轮询、websocket、jpush等。传统http协议需要客户端发起请求,不能服务端进行推送,且建立tcp连接需要多次握手(tcp三次</div> </li> <li><a href="/article/1833210508648476672.htm" title="【前端小技巧】不同组件中如何实现点击空白关闭自定义的弹窗" target="_blank">【前端小技巧】不同组件中如何实现点击空白关闭自定义的弹窗</a> <span class="text-muted">Luxine.</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%88%86%E4%BA%AB/1.htm">前端分享</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>直接上代码吧处理函数closest的参数是弹窗的类名consthandleClickOutside=(event:MouseEvent)=>{consttarget=event.targetasHTMLElement;if(!target.closest('.popUpClassName')){//控制弹窗显示隐藏的变量ispopup.value=false;}};绑定到document上docu</div> </li> <li><a href="/article/1833207862239784960.htm" title="vue+jsonrpc+mongoDB文件传输解决方案(任意格式文件)" target="_blank">vue+jsonrpc+mongoDB文件传输解决方案(任意格式文件)</a> <span class="text-muted">weideng_san</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93/1.htm">文件传输</a><a class="tag" taget="_blank" href="/search/jsonrpc/1.htm">jsonrpc</a><a class="tag" taget="_blank" href="/search/mongoDB/1.htm">mongoDB</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a> <div>环境及需求:前端采用vue;后端采用spring,但是只用到了spring的对象注入功能,未使用springweb相关功能。前后端通信采用jsonrpc,现需要在前端选中文件(格式未知,上传到后端,后端将其存储在mongoDB中)。背景:springweb可以直接使用controller接受MultipartFile对象;但是jsonrpc不能直接传输文件类型,jsonrpc是轻量级通信框架,擅长</div> </li> <li><a href="/article/1833202561855877120.htm" title="基于微前端qiankun的多页签缓存方案实践" target="_blank">基于微前端qiankun的多页签缓存方案实践</a> <span class="text-muted">JavaMonsterr</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>本文梳理了基于阿里开源微前端框架qiankun,实现多页签及子应用缓存的方案,同时还类比了多个不同方案之间的区别及优劣势,为使用微前端进行多页签开发的同学,提供一些参考。一、多页签是什么?我们常见的浏览器多页签、编辑器多页签,从产品角度来说,就是为了能够实现用户访问可记录,快速定位工作区等作用;那对于单页应用,可以通过实现多页签,对用户的访问记录进行缓存,从而提供更好的用户体验。前端可以通过多种方</div> </li> <li><a href="/article/1833198183547760640.htm" title="测试平台系列(32) 编写环境配置页面(中)" target="_blank">测试平台系列(32) 编写环境配置页面(中)</a> <span class="text-muted">米洛丶</span> <div>回顾大家好呀,又见面了!上期我们已经完整地编写了环境管理CRUD的接口,但是光有接口是不行的,我们需要为之编写一个web页面,使用户能够在页面上管理环境数据。这是前端系列文章的第一篇,包含了部分教程在里面,所以本来是下篇的它,变成了中篇。image原型设计我们在实现某个功能的时候,就算不画出原型,心中也一定设计好大概的结构。以我们的环境管理为例子,用户可以通过table查看当前已有的环境,也提供i</div> </li> <li><a href="/article/1833196842578440192.htm" title="Nginx部署前端Vue项目的深度解析" target="_blank">Nginx部署前端Vue项目的深度解析</a> <span class="text-muted">小周不想卷</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFvue%E5%85%A5%E9%97%A8/1.htm">前端vue入门</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a> <div>目录一、准备工作1.1开发环境1.2服务器环境1.3Nginx安装二、构建Vue项目三、上传静态文件到服务器四、配置Nginx五、测试并重新加载Nginx六、访问Vue应用七、高级配置7.1启用HTTPS7.2启用Gzip压缩7.3缓存控制八、常见问题与解决方案8.1404错误8.2权限问题8.3跨域问题九、总结在现代Web开发中,Vue.js因其组件化、响应式数据绑定和易于上手的特点,成为了前端</div> </li> <li><a href="/article/1833190962214563840.htm" title="电商系统开发" target="_blank">电商系统开发</a> <span class="text-muted">红匣子实力推荐</span> <div>随着互联网技术的飞速发展,电子商务已经成为全球范围内的一种重要的商业模式。越来越多的企业和个人开始意识到电商系统的重要性,并寻求专业的开发团队来构建自己的电商平台。本文将详细介绍电商系统开发的基本概念、流程和关键技术。开发-联系电话:13642679953(微信同号)一、电商系统开发的基本概念电商系统是指通过互联网技术实现商品或服务交易的一整套解决方案。它包括前端展示、后台管理、支付结算、物流跟踪</div> </li> <li><a href="/article/1833177312254849024.htm" title="台球助教APP小程序的前端交互设计" target="_blank">台球助教APP小程序的前端交互设计</a> <span class="text-muted">h17711347205</span> <a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>在当今移动互联网时代,台球助教APP小程序作为一种便捷的学习工具,正在成为越来越多台球爱好者的首选。作为设计人员,在开发台球助教APP小程序时,我们的目标是创造一个既美观又实用的应用程序,让用户在使用过程中感到舒适并能有效提升他们的台球技巧。首先,台球助教APP小程序的首页应该简洁明了,让用户一目了然地看到主要功能入口。台球助教APP小程序的导航设计要合理,确保用户可以快速找到他们想要的功能模块,</div> </li> <li><a href="/article/1833176177276186624.htm" title="探索 PubSubJS:高效的消息发布/订阅库" target="_blank">探索 PubSubJS:高效的消息发布/订阅库</a> <span class="text-muted">甄如冰Lea</span> <div>探索PubSubJS:高效的消息发布/订阅库PubSubJSDependencyfreepublish/subscribeforJavaScript项目地址:https://gitcode.com/gh_mirrors/pu/PubSubJS在现代前端开发中,组件间的通信是一个常见且重要的问题。PubSubJS是一个基于JavaScript的轻量级、高效的消息发布/订阅库,它通过主题(topic)</div> </li> <li><a href="/article/1833168843376259072.htm" title="2021-01-02随笔" target="_blank">2021-01-02随笔</a> <span class="text-muted">0清婉0</span> <div>人工智能时代最重要的是机器学习,像数据分析、图像识别、数据挖掘、自然语言处理、语音识别等都是以其为基础的,也可以说人工智能的各种应用都需要机器学习来支撑。现在各大公司越来越注重数据的价值,人工成本也是越来越高,所以机器学习也就变得不可或缺了。数据分析、自然语言处理、语音识别,这将是作为前端人员的我,在2021年学习的重点。现收集几本关于数据分析的书籍,作为参考书籍学习:1.《跟着迪哥学Python</div> </li> <li><a href="/article/1833140130676830208.htm" title="解决网页缩放百分比页面变形问题" target="_blank">解决网页缩放百分比页面变形问题</a> <span class="text-muted">烂笔头儿@</span> <a class="tag" taget="_blank" href="/search/html%2Bcss/1.htm">html+css</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>前端页面经常会出现网页缩放百分比页面变形这个问题解决这个问题很简单,就是在整个布局外面加上一层div,并且为它指定好宽高就可以了。.content{height:**px;//整个布局的高度width:**px;//整个布局的宽度}要注意的是,要是你前面布局使用了浮动,那么在最后还要整体清除一下浮动。如果你不清楚哪一个组件用了,最简单的方法就是在最后最后加上一个空的div,设置css为clear:</div> </li> <li><a href="/article/1833132711049523200.htm" title="web前端,JavaScript字符串和数组,练习题:邮箱格式是否正确,登录名和密码格式是否正确" target="_blank">web前端,JavaScript字符串和数组,练习题:邮箱格式是否正确,登录名和密码格式是否正确</a> <span class="text-muted">奔向我</span> <div>length属性,返回的是字符串的长度indexOf()方法用于获取字符串中返回指定字符串第一次出现的位置(注意:索引从0开始,找不到返回-1)indexOf()方法是从数组中检查指定数据的位置(从后往前找第一个),不存在返回-1includes()方法,从数组中检查指定的数据是否存在,存在返回true,不存在返回falsepush()方法,向数组的末尾添加一个或更多的元素,并返回新的长度spli</div> </li> <li><a href="/article/1833114030340927488.htm" title="前端框架有哪些 如何选择和优缺点" target="_blank">前端框架有哪些 如何选择和优缺点</a> <span class="text-muted">大白菜程序猿</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a> <div>前端框架是用于构建用户界面的工具和库,它们提供了一套预定义的组件、样式和交互模式,帮助开发者更高效地开发前端应用。目前市面上存在多种前端框架,每种框架都有其独特的优势和缺点。以下是一些常见的前端框架及其优势和缺点的概述:常见前端框架React优势:组件化:React鼓励开发者通过创建可复用的组件来构建应用,这有助于提高代码的可维护性和可重用性。高性能:React使用虚拟DOM来优化性能,减少了真实</div> </li> <li><a href="/article/1833107980619444224.htm" title="【鸿蒙实战开发】HarmonyOS-状态管理" target="_blank">【鸿蒙实战开发】HarmonyOS-状态管理</a> <span class="text-muted">代码改变世界996</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a> <div>前言本文基于鸿蒙Nextbeta1,beta2的新特性暂未深入研究和使用,且目前beta2已经可以试用。现在客户端所流行的结构无非就是MVVM或者MVI。MVI的特点是不仅把数据变化做了响应,连交互都封装了,鸿蒙目前最适合的是MVVM。鸿蒙使用声明式UI开发框架,那么和所有的流行的大前端框架一样,我们需要处理前端组件间的数据通信和变化响应,也就是所谓的状态管理。而MVVM中的viewmodel可以</div> </li> <li><a href="/article/1833092348414881792.htm" title="spring-websocket基于stomp实现websocket" target="_blank">spring-websocket基于stomp实现websocket</a> <span class="text-muted">飘零未归人</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/websocket/1.htm">websocket</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录概述后端代码拦截器HandshakeInterceptor拦截器ChannelInterceptor拦截器消息转换器配置类消息处理广播模式用户模式自定义请求头用户信息ChannelInterceptor拦截器设置用户信息DefaultHandshakeHandler的继承类中设置用户对象前端代码概述WebSocket协议是一种相当低级的协议。它定义了如何将字节流转换为帧。帧可以包含文本或二进制</div> </li> <li><a href="/article/103.htm" title="SAX解析xml文件" target="_blank">SAX解析xml文件</a> <span class="text-muted">小猪猪08</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div>1.创建SAXParserFactory实例 2.通过SAXParserFactory对象获取SAXParser实例 3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类 4.SAXParser实例的parse来获取文件     public static void main(String[] args) { //</div> </li> <li><a href="/article/230.htm" title="为什么mysql里的ibdata1文件不断的增长?" target="_blank">为什么mysql里的ibdata1文件不断的增长?</a> <span class="text-muted">brotherlamp</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/linux%E8%BF%90%E7%BB%B4/1.htm">linux运维</a><a class="tag" taget="_blank" href="/search/linux%E8%B5%84%E6%96%99/1.htm">linux资料</a><a class="tag" taget="_blank" href="/search/linux%E8%A7%86%E9%A2%91/1.htm">linux视频</a><a class="tag" taget="_blank" href="/search/linux%E8%BF%90%E7%BB%B4%E8%87%AA%E5%AD%A6/1.htm">linux运维自学</a> <div>我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。 当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。 一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是: ibdata1存了什么? 当你启用了 i</div> </li> <li><a href="/article/357.htm" title="Quartz-quartz.properties配置" target="_blank">Quartz-quartz.properties配置</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a> <div>其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。   下面是这些默认值的解释 #-----集群的配置 org.quartz.scheduler.instanceName =</div> </li> <li><a href="/article/484.htm" title="informatica session的使用" target="_blank">informatica session的使用</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/workflow/1.htm">workflow</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a><a class="tag" taget="_blank" href="/search/log/1.htm">log</a><a class="tag" taget="_blank" href="/search/Informatica/1.htm">Informatica</a> <div>如果希望workflow存储最近20次的log,在session里的Config  Object设置,log  options做配置,save  session log :sessions  run  ;savesessio log for  these runs:20 session下面的source 里面有个tracing </div> </li> <li><a href="/article/611.htm" title="Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误" target="_blank">Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a> <div>Scrapy版本0.14.4 出现问题现象: ERROR: Error downloading <GET http://xxxxx  CRC check failed   解决方法   1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'   明确表示不支持任何形式的压缩格式,避免程序的解压</div> </li> <li><a href="/article/738.htm" title="java Swing小集锦" target="_blank">java Swing小集锦</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/java+swing/1.htm">java swing</a> <div>1.关闭窗体弹出确认对话框   1.1   this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);   1.2   this.addWindowListener ( new WindowAdapter () { public void windo</div> </li> <li><a href="/article/865.htm" title="强制删除.svn文件夹" target="_blank">强制删除.svn文件夹</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>          在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除</div> </li> <li><a href="/article/992.htm" title="GET和POST有什么区别?及为什么网上的多数答案都是错的。" target="_blank">GET和POST有什么区别?及为什么网上的多数答案都是错的。</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/get+post/1.htm">get post</a> <div>     如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历      前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。     这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G</div> </li> <li><a href="/article/1119.htm" title="谈谈新浪微博背后的那些算法" target="_blank">谈谈新浪微博背后的那些算法</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E8%B0%88%E8%B0%88%E6%96%B0%E6%B5%AA%E5%BE%AE%E5%8D%9A%E8%83%8C%E5%90%8E%E7%9A%84%E9%82%A3%E4%BA%9B%E7%AE%97%E6%B3%95/1.htm">谈谈新浪微博背后的那些算法</a> <div>本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。 微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针</div> </li> <li><a href="/article/1246.htm" title="Connection reset 连接被重置的解决方法" target="_blank">Connection reset 连接被重置的解决方法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E7%AC%A6%E6%B5%81/1.htm">字符流</a><a class="tag" taget="_blank" href="/search/%E8%BF%9E%E6%8E%A5%E8%A2%AB%E9%87%8D%E7%BD%AE/1.htm">连接被重置</a> <div>流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置   被重置的代码如下;   客户端代码; package 通信软件服务器; import java.io.BufferedWriter; import java.io.OutputStream; import java.io.O</div> </li> <li><a href="/article/1373.htm" title="web.xml配置详解之filter" target="_blank">web.xml配置详解之filter</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/filter/1.htm">filter</a> <div>一.定义 <filter> <filter-name>encodingfilter</filter-name> <filter-class>com.my.app.EncodingFilter</filter-class> <init-param> <param-name>encoding<</div> </li> <li><a href="/article/1500.htm" title="Heritrix" target="_blank">Heritrix</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86/1.htm">配置管理</a> <div>作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。 Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资</div> </li> <li><a href="/article/1627.htm" title="【Zookeeper】FAQ" target="_blank">【Zookeeper】FAQ</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a> <div>1.脱离IDE,运行简单的Java客户端程序 #ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient    1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码 2. 如果Zookeeper集群跨越多个机房,那么Leader/</div> </li> <li><a href="/article/1754.htm" title="The user specified as a definer ('aaa'@'localhost') does not exist" target="_blank">The user specified as a definer ('aaa'@'localhost') does not exist</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/localhost/1.htm">localhost</a> <div>今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist 最后找原因发现删除操作做了触发器,而触发器里面有这样一句 /*!50017 DEFINER = ''aaa@'localhost' */  原来最初</div> </li> <li><a href="/article/1881.htm" title="javascript中showModelDialog刷新父页面" target="_blank">javascript中showModelDialog刷新父页面</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%88%B7%E6%96%B0%E7%88%B6%E9%A1%B5%E9%9D%A2/1.htm">刷新父页面</a><a class="tag" taget="_blank" href="/search/showModalDialog/1.htm">showModalDialog</a> <div>在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:       window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self       在子页面使用w</div> </li> <li><a href="/article/2008.htm" title="编程之美-买书折扣" target="_blank">编程之美-买书折扣</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a> <div> import java.util.Arrays; public class BookDiscount { /**编程之美 买书折扣 书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。 下面用动态规划实现。 哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷</div> </li> <li><a href="/article/2135.htm" title="关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要" target="_blank">关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要</a> <span class="text-muted">chenbowen00</span> <a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a><a class="tag" taget="_blank" href="/search/WEB%E5%AE%89%E5%85%A8/1.htm">WEB安全</a> <div>因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。 下面记录下本次解决的过程以便后续 1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议, 而使用ftp协议默认会产生一个匿名用</div> </li> <li><a href="/article/2262.htm" title="[电力与暖气]煤炭燃烧与电力加温" target="_blank">[电力与暖气]煤炭燃烧与电力加温</a> <span class="text-muted">comsci</span> <div>       在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....       不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?   &nbs</div> </li> <li><a href="/article/2389.htm" title="oracle O7_DICTIONARY_ACCESSIBILITY参数" target="_blank">oracle O7_DICTIONARY_ACCESSIBILITY参数</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div>O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL</div> </li> <li><a href="/article/2516.htm" title="比较全面的MySQL优化参考" target="_blank">比较全面的MySQL优化参考</a> <span class="text-muted">dengkane</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。   1、硬件层相关优化   1.1、CPU相关   在服务器的BIOS设置中,可</div> </li> <li><a href="/article/2643.htm" title="C语言homework2,有一个逆序打印数字的小算法" target="_blank">C语言homework2,有一个逆序打印数字的小算法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a> <div>#h1#   0、完成课堂例子 1、将一个四位数逆序打印 1234 ==> 4321 实现方法一: # include <stdio.h> int main(void) { int i = 1234; int one = i%10; int two = i / 10 % 10; int three = i / 100 % 10; </div> </li> <li><a href="/article/2770.htm" title="apacheBench对网站进行压力测试" target="_blank">apacheBench对网站进行压力测试</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/apachebench/1.htm">apachebench</a> <div>   ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。 通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。 </div> </li> <li><a href="/article/2897.htm" title="2种办法让HashMap线程安全" target="_blank">2种办法让HashMap线程安全</a> <span class="text-muted">flyfoxs</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/jni/1.htm">jni</a> <div>多线程之--2种办法让HashMap线程安全 多线程之--synchronized 和reentrantlock的优缺点 多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)     HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.   </div> </li> <li><a href="/article/3024.htm" title="Spring Security(04)——认证简介" target="_blank">Spring Security(04)——认证简介</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/%E8%AE%A4%E8%AF%81/1.htm">认证</a><a class="tag" taget="_blank" href="/search/%E8%BF%87%E7%A8%8B/1.htm">过程</a> <div>认证简介 目录 1.1     认证过程 1.2     Web应用的认证过程 1.2.1    ExceptionTranslationFilter 1.2.2    在request之间共享SecurityContext   1</div> </li> <li><a href="/article/3151.htm" title="Java 位运算" target="_blank">Java 位运算</a> <span class="text-muted">Javahuhui</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a> <div>// 左移( << ) 低位补0 // 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0: // 0000 0000 0000 0000 0000 0000 0001 1000 System.out.println(6 << 2);// 运行结果是24 // 右移( >> ) 高位补"</div> </li> <li><a href="/article/3278.htm" title="mysql免安装版配置" target="_blank">mysql免安装版配置</a> <span class="text-muted">ldzyz007</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。 2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。 3、my-large.ini是为专用于一个SQL数据</div> </li> <li><a href="/article/3405.htm" title="MFC和ado数据库使用时遇到的问题" target="_blank">MFC和ado数据库使用时遇到的问题</a> <span class="text-muted">你不认识的休道人</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/mfc/1.htm">mfc</a> <div>=================================================================== 第一个 =================================================================== try{ CString sql; sql.Format("select * from p</div> </li> <li><a href="/article/3532.htm" title="表单重复提交Double Submits" target="_blank">表单重复提交Double Submits</a> <span class="text-muted">rensanning</span> <a class="tag" taget="_blank" href="/search/double/1.htm">double</a> <div>可能发生的场景: *多次点击提交按钮 *刷新页面 *点击浏览器回退按钮 *直接访问收藏夹中的地址 *重复发送HTTP请求(Ajax) (1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。 这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法: http://getbootstrap.co</div> </li> <li><a href="/article/3659.htm" title="Java String 十大常见问题" target="_blank">Java String 十大常见问题</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a> <div> 1.字符串比较,使用“==”还是equals()?   "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。   equals()判断两个字符串的值是否相等。   除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。   如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。    </div> </li> <li><a href="/article/3786.htm" title="SpringMVC 登陆拦截器实现登陆控制" target="_blank">SpringMVC 登陆拦截器实现登陆控制</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。   实现方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 </div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>