将 Subversion 与 Adobe Dreamweaver CS5 结合使用

2008 年推出 Dreamweaver CS4 后,Adobe 引入了对 Subversion 版本控制系统 (VCS) 的支持。推出 Dreamweaver CS5 后,Adobe 继续为 Web 设计人员和开发人员提供 VCS 带来的所有优势,这些优势一直以来得到更传统的代码开发人员的认可和青睐,但更新了对 Subversion 1.6.6 客户端库的支持并新增了几个功能,包括在 VCS库中更简单的文件提交和还原方式。

Adobe 支持这一功能旨在改善 Dreamweaver 用户的工作情况。设计人员/开发人员不必再使用一个图形用户界面 (GUI) 进行 Web 开发,使用另一个 GUI 管理他们的 VCS。这一集成显著改善了设计人员/开发人员的工作流程。

注意:Dreamweaver CS5 与 Subversion 集成并不能作为一个全功能的 Subversion 客户端。虽然 Dreamweaver CS5 不提供其他 Subversion 客户端提供的所有高级功能,但它使 Dreamweaver 用户能将 Subversion 集成到日常工作流程中。

这是三部文章系列的第 1 部分,我将通过这个系列说明为什么设计人员/开发人员会发现 Subversion 如此实用以及如何将 VCS 使用集成到他们的现有工作流程中。首先,我将侧重于一些基本的 VCS 概念以及使用这类工具的原因。稍后,我会说明如何将 Subversion 集成到工作流程中。在第 2 部分中,我会说明如何将 Dreamweaver CS5 配置为使用 Subversion 库;在第 3 部分中,我会说明如何创建您自己的库。

如果已经熟悉 VCS 概念,您可以转至第 2 部分:将 Dreamweaver CS5 配置为使用 Subversion。

什么是 Subversion 和版本控制?

Subversion (SVN) 是目前可用的多款商业和开放源代码版本控制系统 (VCS) 之一。自问世以来,它得到了广泛应用,并提供一款出色的 VCS 或不可缺的许多功能。Subversion 软件运行于服务器上,该服务器提供一个库,供开发人员存储源代码和配置文件等关键数据。与标准的文件系统不同,VCS 跟踪对每个文件所做的更改,使用户能跟踪更改情况并恢复到任何文件的先前版本。它还允许多个开发人员使用分支、合并和标记在一个更复杂的开发流程中互动。

Subversion 由 CollabNet 开发小组发起,该小组与开放源代码社区一起继续支持它。它已发布,供大众根据 Apache 许可证进行使用。Subversion 网站提供该软件及其源代码的免费下载和安装。包括 Mac OS X 10.6 和许多 Linux 变体在内的许多平台预装该软件。Dreamweaver CS5 用户无需下载或安装 Subversion 客户端,因为 Dreamweaver CS5 可以作为 Subversion 库的客户端。

Subversion 并不是公用域中唯一可用的 VCS。其他经典的开放源代码系统包括 Revision Control System (RCS) 和 Concurrent Versions System (CVS)。如果您对商业应用程序感兴趣,可查看 Perforce 和 Microsoft Visual SourceSafe 等产品。截至撰写本文时,Subversion 是 Dreamweaver CS5 只支持 VCS。

基本 VCS 概念

无论属于 Web 设计/开发小组还是个人 Web 设计人员/开发人员,您考虑 VCS 时主要出于几个原因。我在这两种环境中都用过 VCS 并发现优势远远超出将 Subversion 集成到工作流程所需的额外工作。

注意:Dreamweaver CS5 和 Subversion 在 VCS 概念方面所使用的术语不同。在本文的其余部分,我将使用 Adobe 在 Dreamweaver CS5 中所采用的术语并用括号括起相应的 Subversion 术语。

作为一名属于小组的设计人员/开发人员,您的组织可能要求您将代码(如 HTML、CSS、JavaScript)取出和存回(提交)一个现有 Subversion 库。这样,整个开发组可以使用同一个项目和代码库。Subversion 提供几种处理冲突和意外更改的方法。您还可以在指定时刻使用一组不同文件的快照(标签),创建一个标准化的发布流程。

作为个人设计人员/开发人员,您可以使用自己的 Subversion 库跟踪代码更改情况,当您要还原为之前的某个版本时,系统允许您撤消(还原)更改。为网站以及脚本和其他代码开发 HTML 时,我主要以这种方式使用 Subversion。要查看代码的某个修订版的情况更是数不胜数。我每次都能使用 Subversion 快速获得特定修订版并找出之前版本与当前版本之间的差异。

库是数据的中央存储点,使用版本控制管理的所有文件都保存在那里。库通常存放在中央服务器上,但也可以在本地系统上创建它。对于 Subversion 客户端(包括 Dreamweaver CS5)而言,库与标准目录结构很相似,就像机器上的本地文件系统一样。虽然客户端将库视为一个目录结构,服务器则将库视为一个用于跟踪文件及其更改情况的复杂系统。多个用户可以同时访问一个库,因此 Subversion 是小组开发的理想之选。

Dreamweaver CS5 用户通过一个库路径和连接方法访问库,它通常由库管理员提供。

取出和存回(提交)

使用 Subversion(或任何 VCS)时,有三种基本的开发操作:取出一个或多个文件,对任何文件做出更改,然后将这些文件存回库中。该系统旨在跟踪对文件所作的每个更改并观察开发人员之间的冲突。每当库的本地副本与远程版本不同步时,可以通过执行更新重新同步库目录结构。

如果两个设计人员/开发人员更改同一个文件,提交者将收到冲突警报,他/她随后即可联系另一方以解决冲突并确定谁的更改占先。

比较 (diff) 与撤消 (revert)

使用 Subversion 管理开发项目有许多优势,但最主要的优势有两个。第一个优势是可以通过比较当前文件和之前文件,确定它们的差异以及所作的更改。这个过程有时称为比较文件,它使您能找出两次提交到 Subversion 库的文件之间的更改情况。

第二个主要优势在于,使用 Subversion 可以还原为给定文件之前的某个版本。假设某人更改了一个网页或 CSS 文件,令网站无法使用。如果没有 VCS,开发人员将不得不手动重新生成旧版文件或找出备份。借助 Subversion,您可以轻松还原为已更改文件的先前版本。回复之前某个时刻的快照的功能与 Mac OS X 10.6.x 中新增的 Time Machine 功能十分相似。

主干、分支和标签

如果您属于一个较大的开发小组,可能有一名 Subversion 管理员负责管理库中的目录结构。这个目录结构因每家公司的开发工作流程方法不同而异。理解主干、分支和标签可以帮助您在讨论 Subversion 时与小组成员实现有效沟通。

  • 主干:库中的某个项目的主要部分称为主干。将通过它管理代码的主要部分并将站点的主线开发放在其中。如果库要管理多个网站,则它们可能有各自的主干。
  • 分支:当开发人员或小型开发小组要使用自己的主线主干版本控制“副本”时,通常会创建分支。分支中进行的工作通常时间有限,并且当派生项目完成时,会合并回主干中。如果某些项目保留派生状态,它们不会合并回主干。
  • 标签:您可能熟悉商业及开放源代码软件不同的版本编号系统。Apple 使用 xx.x.x 格式对发行版进行编号(例如,10.6.3)。Microsoft 采用另一种方法,在主产品名称后面加上构建号(例如,Windows XP,版本 5.1,构建 2600.xpsp.080413-2111)。这两种编号系统都与 VCS 中的标签有关。标签是一个或多个文件在 VCS 库中的时间快照。您可以将它视为完整复制一个 Web 内容文件夹,然后使用版本号为它添加标签(例如,WebSite_1.0)。大多数组织都有一个构建系统,它为一组文件添加标签,用于发布到登台(测试版)或生产(最终发行版)。在我工作过的一家公司,我负责开发自定义推送脚本,它们为库中的 Web 内容添加标签,然后将所有已添加标签的代码从构建服务器同步到负载平衡系统后方所有不同的 Web 服务器。

个人开发人员可能从不需要在主干外创建分支,但有些开发人员使用标签。如果您不准备使用标签,请参阅本文结尾部分的后续步骤部分获取更多 Subversion 资源。

将版本控制集成到工作流程中

Web 设计和开发工作流程因组织不同而相差悬殊。这一差异使得很难为在工作流程中使用 VCS 定义一个标准。我曾效力于多家进行 Web 开发和传统软件开发的公司,每家公司都采用自己的方法将 VCS 集成到工作流程中。但是,可以借助一些相似性指导从一个不基于 VCS 的工作流程转到一个使用 Subversion 的工作流程。此处概述的方法绝不是唯一的最佳做法或选择,但我认为它是一个好起点。

大多数 Dreamweaver 用户有一个网站的本地副本和一台远程服务器,后者用于托管设计小组开发的内容。远程服务器可以是登台或开发系统,或是实际的生产服务器(对于较小的小组而言)。较大的公司倾向于使用开发服务器测试和试用代码及内容。他们通常有专人负责将代码推送到生产网站。

个人开发人员或属于较小的小组的典型工作流程是编辑站点的本地副本,然后在不同的时刻推送编辑结果(完成任务时或一天结束时)。开发人员可以定期下载整个站点,确保自己与小组的其余人员持有相同的内容,但发生这种情况的频率较低,因为更改很少重叠。如果本地内容与远程内容不同或是不同的开发人员更改了同一文件,这种方法比较容易造成问题。

对于较大的小组,这种工作流程略有不同,因为不同开发人员所做的更改更容易产生冲突并导致潜在的网站问题。在这种情况下,个人设计人员的流程可能如下:

  1. 上午进办公室,喝杯咖啡并查看电子邮件。
  2. 使用 Dreamweaver 将站点的最新副本从登台服务器下载到本地系统。
  3. 对需要更新的不同本地文件做出相应更改,或为站点扩展添加新文件。
  4. 将那些更改上传回登台服务器。
  5. 测试更改,确保一切可用。

一旦站点可转入生产,设计人员或设计小组将要求负责发布的人员将站点推送到生产,此时客户就可以访问它。

将 Subversion 用作工作流程的一部分可以大幅改善更改管理并提供本文之前部分中提到的许多其他优势。我建议使用以下工作流程:

  1. 个人开发人员上午进公司,查看与站点开发相关的任务列表。这可以包括对现有内容的增强或缺陷修复。许多公司采用 Bugzilla 等功能或缺陷跟踪系统,实现对这些任务的跟踪。
  2. 开发人员随后执行取出操作,从 Subversion 服务器更新他们的本地文件副本。这可以确保他们获得所有最新副本以及最后一次更新后其他开发人员存回的更改。
  3. 随后就可以对文件进行更改和添加操作。要测试这些更改,开发人员可以将内容上传到登台服务器。
  4. 在登台服务器上测试更改后,开发人员可以将文件存回(提交)到库。此时,其他开发人员可以取出它们。如果存回时发生冲突,开发人员可以联系其他小组成员,讨论相关问题并决定如何解决它们。要帮助解决这个问题,开发人员可以使用 diff 工具将库副本与文件最新的可用副本进行比较。
  5. 构建开发人员将定期(按计划或到达某个开发里程碑时)将更新库中的本地站点副本,并将该版本推送给生产。大多数公司会使用高级 Subversion 功能,如用于协助这一流程的标签。

这一流程可以帮助您的小组将 Subversion 集成到工作流程中。这个流程可能会越来越复杂,但这是着手使用 VCS 的一个好起点。

当您作为一个大型小组的一部分处理某个项目时,通常已有一名小组成员设置 Subversion 服务器和库,并且可以为您提供远程库的连接方法和凭据。Dreamweaver CS5 支持四个主要的 Subversion 连接协议:HTTP、HTTPS、SVN 和 SVN+SSH。

根据我的经验,大多数环境设置了 Subversion 和 Apache,并且支持使用 HTTP 或 HTTPS 协议方法连接到 Subversion 服务器。还可以通过其他方法连接到 Subversion 服务器,因此请务必向 Subversion 管理员咨询连接的详细信息。在本文的示例中,我使用 HTTP 方法连接到库。

不同于大型小组中的设计人员/开发人员,个人开发人员可能已使用 Dreamweaver 管理他们的网站并确定了大部分站点定义,但他们需要设置一个 Subversion 库。这可能还适用于公司负责最初创建 Subversion 库的资深开发人员。

因此必须理解如何创建库以及最初存回一些 Web 内容。但这个过程比较高级,因此它包含在本文系列的最后一部分中。对于最初存回内容,我已经在 Dreamweaver 中设置了一个网站,并将启用 Subversion 支持,开始在 Dreamweaver CS5 中使用 Subversion 客户端。

为 Subversion 库配置新站点

在 Adobe Dreamweaver CS5 中,版本控制系统的配置设置作为站点定义的一部分进行管理。管理的各个网站可使用不同的 Subversion 设置。

假设一些内容已经存回库中,作为设计/开发小组的一名新成员,您希望访问这个现有 Web 内容和代码。

在 Dreamweaver 中,选择“站点”>“管理站点”,打开“站点定义”对话框(请参阅图 1)。

图 1.选择“站点”>“管理站点”,访问一个现有站点

要为当前站点新建站点定义,依次单击“新建”和“站点”(请参阅图 2)。如果显示的是“基本”视图,单击“高级”(靠近对话框顶部)可切换视图并访问版本控制设置。

图 2.依次单击“新建”和“站点”。

在左侧的“类别”下,选择“本地信息”(请参阅图 3)。然后,输入站点的本地信息,包括名称、本地根文件夹和 HTTP 地址。我在本例中使用 voltmer.com,设置如下:

  • 站点名称:voltmer.com
  • 本地根文件夹:/Users/Voltmer/Web Sites/voltmer.com
  • 默认图像文件夹
  • HTTP 地址:http://www.voltmer.com

图 3.输入新站点的本地信息。

注意:我在 Web Sites 文件夹中为 voltmer.com 新建了一个空目录。它是空的,因为我还没有从 Subversion 服务器取出我的 Web 内容。并且,我将“默认图像文件夹”字段留空,因为那里还没有文件夹。它将来自库,并且我稍后会返回并编辑该值。

设置本地信息后,单击左侧的“远程信息”,并将“访问”设置为“无”(请参阅图 4)。一些经验丰富、习惯于将数据从 Dreamweaver 直接推送到生产网站的 Dreamweaver 用户可能会觉得奇怪。但对于一个较大的组织而言,由子小组或自动化脚本从 Subversion 服务器执行更新,然后将添加标签的一组文件推送到产品服务器是很常见的事。

图 4.在“远程信息”下,将“访问”设置为“无”。

如果不要将远程站点用于测试或登台,可以像以前那样配置这些设置。

如果您负责将更新推送到生产(或是负责该操作的人员之一),您可能还希望在该界面中配置生产服务器;但是,我建议您考虑使用自动构建系统,将内容部署到生产站点。

然后,选择“版本控制”,选择“Subversion”作为访问方法(请参阅图 5)。您只有一个选项,因为截至撰写本文时,Dreamweaver CS5 只支持一种 VCS。

指定连接到 Subversion 库所需的各种连接设置,包括协议和服务器地址等。您的 Subversion 管理员应当可以提供这些值。我的设置如下:

  • 访问: Subversion
  • 协议: HTTP
  • 服务器地址: localhost
  • 存储库路径: /repo/voltmer.com/
  • 服务器端口: 默认值
  • 用户名: voltmer
  • 密码: <secretpassword>

图 5.指定 Subversion 库的版本控制设置。

注意:本例中的服务器与客户端运行在同一台机器上,因此我将 localhost 用作服务器名。Localhost 是一个别名,它指本地机器。

要验证设置是否有效,单击“测试”。如果一切配置正确,Dreamweaver 将显示一个对话框,其中显示“服务器和项目可访问!”(请参阅图 6)。如果看不到此消息,请参阅 Dreamweaver CS5 文档或咨询 Subversion 库管理员,确认配置设置。

图 6.如果一切配置正确,可看到该对话框。

要完成,单击“站点定义”对话框中的“确定”。

注意:您可能需要在其他类别中修改站点定义设置,但那些配置已超出本文范围。

取出和编辑内容

此时,Dreamweaver CS4 界面的“本地文件”区域中没有任何内容,因为还没有从库中取出内容。要取出内容,请确保您在网站的“本地文件”区域,右键单击或按 Ctrl 键单击目录结构顶部的站点文件夹,选择“版本控制”>“获取最新版本”(请参阅图 7)。此时,本地目录结构将与服务器上的 Subversion 库中的内容进行同步。您已经取出代码,随时可以开始进行编辑。

图 7.选择“版本控制”>“获取最新版本”,从 Subversion 检索内容。

图 8 显示我的 voltmer.com 取出结果。我现在可以更改某些内容。

图 8.更新后的本地视图。

具体而言,我决定更新 voltmer.com 上的 index.html 文件的部分内容。我忘记更改主页标题的默认值,并且不喜欢此时的标题,所以我要将:

Title

更改为:

Voltmer's Website

为了进行更改,我双击“本地文件”区域中的 index.html 文件,打开它进行编辑。默认情况下,我看到的是“设计”视图。在页面顶部,我将“Title”更改为“Voltmer's Website”。我也可以切换到“代码”视图或“拆分”视图,直接在 HTML 中进行编辑。上述任何操作都可以更改底层的文件。完成更改后,我关闭文件并保存更改。

此时,我的“本地文件”区域略有变化。Dreamweaver CS4 在 index.html 旁添加了一个勾号,表明我已更改此文件(请参阅图 9)。这只是本地更改;库中的文件保持不变。对于 Subversion 服务器而言,该文件尚未更改。其他用户可以取出他们自己的站点副本并做出更改,但他们看不到我对 index.html 所做的更改。

我要将所做的更改提交回库,最终发布到生产网站,因此我需要将这些更改存回(提交)到库。

图 9.index.html 旁的勾号表明对文件的本地更改。

要这样做,我右键单击已更改的文件并选择“存回”(请参阅图 10)。随后会提示我提供“提交消息”。该消息将与文件更改内容一起存储在库中,作为取出与存回之间对文件所作更改的记录。

图 10.选择“存回”,将更改后的文件提交到库。

专业设计人员和开发人员都知道清晰、准确的更改描述十分重要,因为它们可以帮助小组中的每个人理解更改内容及其原因。您甚至可以使用注释回想自己过去所做的某次编辑的细节。对于此次更改,我键入“Changed the title of index.html”(请参阅图 11)。

图 11.为“提交消息”输入一个有意义的更改描述。

在对话框中键入内容后单击“提交”,我的更改即提交到库。当您自己这样做时,您会发现 Dreamweaver CS4 删除了“本地文件”列表中的文件旁的勾号,表明该文件已经与库同步。

使用 diff 和 revert

Subversion 最强大的两大功能是 diff 和 revert。diff 功能允许设计人员/开发人员比较同一文件的两个不同版本,找出它们之间的差异。如果要找出受损版网站与之前的可用版网站之间的更改情况,您就明白它为何如此实用了。借助文件 diff 功能,您可以轻松找出更改部分。

借助 revert 功能,您可以还原为之前的版本。例如,如果客户不喜欢您所作的某项更改,您只需还原为旧版页面。我可以在库中找到旧副本,而不是保留多个旧版,使用 diff 比较旧副本和当前副本,然后还原为旧版。

我们再回到我的示例情景,我接到客户的电话,他/她希望主页标题像以前一样。我手头在处理许多站点,已经记不清自己所作的更改,所以我执行 diff。

我右键单击文件 index.html 并选择“版本控制”>“显示修订版”(请参阅图 12)。

图 12.选择“版本控制”>“显示修订版”进行版本比较。

在“修订历史记录”对话框中,我选择要比较的两个修订版,然后单击“比较”(请参阅图 13)。

图 13.选择要比较的修订,单击“比较”。

因为我还没有定义一个用于文件比较的应用程序,所以 Dreamweaver 会询问我是否要选择一个应用程序(请参阅图 14)。我希望使用已安装的某个应用程序。我现在使用的是 Bare Bones Software 的 TextWrangler,您可以选择最适合自己需求的工具。

图 14.单击“确定”选择一个用于文件比较的应用程序。

有关如何安装各种 diff 工具的详细信息,请单击“Dreamweaver 首选项”对话框的“文件比较”类别中的“帮助”(请参阅图 15)。

图 15.在“首选项”的“文件比较”类别中指定首选比较应用程序。

配置 diff 应用程序后,每当我选择“版本控制”>“显示修订版”时,Dreamweaver 会启动该应用程序并比较文件的不同修订(请参阅图 16)。

单击可放大

查看差异后,我认为需要还原为之前的版本。在同一个“修订历史记录”对话框中,我选择要取代当前版本的文件旧版,单击“提升到当前版本”。Dreamweaver 提示我确认要还原为选定版本(请参阅图 17)。

图 17.单击“是”确认要还原为选定修订。

单击“是”后,修订历史记录将自动更新并显示文件更改的新修订号(请参阅图 18),但内容与旧版文件相同。

图 18.修订 2,即最初的存回,现在是最新修订。

此时,如果编辑该文件,我可以看到原来的 </code> 标签而不是我之前所作的更改。</p> <p>右键单击已更改的某个本地文件,然后选择“撤消取出”,也可以还原它。</p> </div> </div> <p> </p> </div> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1304187516559069184"></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">你可能感兴趣的:(网页开发)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835389111658180608.htm" title="《HTML 与 CSS—— 响应式设计》" target="_blank">《HTML 与 CSS—— 响应式设计》</a> <span class="text-muted">陈在天box</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、引言在当今数字化时代,人们使用各种不同的设备访问互联网,包括智能手机、平板电脑、笔记本电脑和台式机等。为了确保网站在不同设备上都能提供良好的用户体验,响应式设计成为了网页开发的关键。HTML和CSS作为网页开发的基础技术,在实现响应式设计方面发挥着重要作用。本文将深入探讨HTML与CSS中的响应式设计原理、方法和最佳实践。二、响应式设计的概念与重要性(一)概念响应式设计是一种网页设计方法,旨在</div> </li> <li><a href="/article/1834780499281801216.htm" title="解锁网页交互利器:深入浅出 AJAX,用 JavaScript 与后端服务器对话,局部请求刷新数据" target="_blank">解锁网页交互利器:深入浅出 AJAX,用 JavaScript 与后端服务器对话,局部请求刷新数据</a> <span class="text-muted">微特尔普拉斯</span> <a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><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> <div>在当今互联网时代,网页早已不再是静态的信息展示平台,而是充满动态交互的应用体验场。而实现这种流畅交互体验的关键技术之一,便是AJAX(AsynchronousJavaScriptandXML)。它允许网页在后台悄无声息地与服务器交换数据,无需刷新整个页面,便可实现内容的动态更新,为用户带来行云流水般的操作体验。在AJAX出现之前,网页开发采用的是前后端不分离的模式。前端开发者编写好HTML和CSS</div> </li> <li><a href="/article/1833827134573998080.htm" title="如何用JavaScript实现视频观看时间追踪" target="_blank">如何用JavaScript实现视频观看时间追踪</a> <span class="text-muted">瑆箫</span> <a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>博客:如何用JavaScript实现视频观看时间追踪|瑆箫博客在网页开发中,跟踪用户与多媒体内容(如视频)的互动是一项常见需求。无论是教育平台、数据分析,还是用户参与度统计,监控用户如何观看视频内容都能提供宝贵的见解。这篇文章将探索如何使用JavaScript实现视频播放时长的跟踪。目标我们的目标是跟踪用户观看视频的总时长,包括暂停的时间,并将这些信息更新到后台系统。我们将通过捕获播放、暂停和结束</div> </li> <li><a href="/article/1833742154019729408.htm" title="html知识点总结" target="_blank">html知识点总结</a> <span class="text-muted">软件技术NINI</span> <a class="tag" taget="_blank" href="/search/html%E7%AC%94%E8%AE%B0/1.htm">html笔记</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>HTML(HyperTextMarkupLanguage)总结可以从其定义、基本结构、常用标签以及网页开发工具等多个方面进行阐述。一、HTML定义HTML是一种超文本标记语言,它不是一种编程语言,而是一种用于描述网页内容的标记语言。HTML文档由HTML标签和文本内容组成,这些标签告诉浏览器如何显示页面上的内容。HTML的发展始于1990年,由Web之父TimBerners-Lee发布,并随着互联</div> </li> <li><a href="/article/1833596914633895936.htm" title="AJAX实时表单验证系统" target="_blank">AJAX实时表单验证系统</a> <span class="text-muted">三年九班蓝同学</span> <div>本文还有配套的精品资源,点击获取简介:在网页开发中,"ajax验证表单"是一项关键任务,确保数据符合格式和规则,提升数据质量和用户体验。本应用通过使用JavaScript和XMLHttpRequest对象实现后台验证,无需页面刷新。它包括前端验证、事件处理、Ajax调用、服务器端处理、响应处理、用户体验和安全性等关键步骤,以jQuery库简化开发流程,创建高效、安全的表单验证系统。1.表单验证的重</div> </li> <li><a href="/article/1833460633916502016.htm" title="Matter.js:Web开发者的2D物理引擎" target="_blank">Matter.js:Web开发者的2D物理引擎</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%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/github/1.htm">github</a><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/canvas/1.htm">canvas</a><a class="tag" taget="_blank" href="/search/%E7%89%A9%E7%90%86%E5%BC%95%E6%93%8E/1.htm">物理引擎</a> <div>Matter.js:Web开发者的2D物理引擎前言在现代网页开发中,交互性和动态效果是提升用户体验的关键因素。Matter.js,一个专为网页设计的2D物理引擎,为开发者提供了一种简单而强大的方式,来实现复杂的物理交互效果。无论是模拟重力、碰撞还是复杂的物体运动,Matter.js都能轻松应对。本文将带你深入了解Matter.js,并提供实际的代码示例,让你一窥其强大功能。官网:https://b</div> </li> <li><a href="/article/1833279602898857984.htm" title="js知识总结" target="_blank">js知识总结</a> <span class="text-muted">软件技术NINI</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>JavaScript(JS)是一种广泛使用的编程语言,主要用于网页开发,但也适用于非浏览器环境(如Node.js)。它支持面向对象、命令式、声明式(如通过函数式编程)和事件驱动式编程风格。以下是对JavaScript核心知识的一个总结:1.基础语法变量:使用var、let、const声明变量。let和const具有块级作用域,而var具有函数作用域或全局作用域。数据类型:包括原始类型(如Strin</div> </li> <li><a href="/article/1832536376252395520.htm" title="【ttf压缩】网页开发中引入字体文件过大,加载缓慢的解决办法【字蛛】【web Font】" target="_blank">【ttf压缩】网页开发中引入字体文件过大,加载缓慢的解决办法【字蛛】【web Font】</a> <span class="text-muted">Luckstar_wei</span> <a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF/1.htm">技术</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E4%BD%93/1.htm">字体</a><a class="tag" taget="_blank" href="/search/ttf%E5%8E%8B%E7%BC%A9/1.htm">ttf压缩</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E5%8E%8B%E7%BC%A9/1.htm">中文字体压缩</a> <div>yueyemoyanweb中文字体演示与工具使用请前往主页:http://font-spider.org/需要安装node.js输入以下命令:npminstallfont-spider-g运行安装成功之后就开始压缩了我的目录是这样的我的css文件开头是这样的这里要确保ttf文件一定要有,其他的不管在你的html中也引用了相应的css文件接下来就是最后一步了生成新的字体库nodejs命令行输入fon</div> </li> <li><a href="/article/1832503267762991104.htm" title="Vue初步认识与Vue基础指令" target="_blank">Vue初步认识与Vue基础指令</a> <span class="text-muted">amanohina</span> <div>Vue.js简介先来谈谈传统网页开发传统开发的缺点:1.DOM操作频繁,代码繁杂2.DOM操作与逻辑代码混合,可维护性差3.不同功能区域书写在一起,可维护性低4.模块之间的依赖关系复杂Vue.js应运而生官网:https://cn.vuejs.orgVue.js核心特性数据驱动视图数据变化会自动更新到对应元素中,无需手动操作DOM,这种行为称作单向数据绑定。单向数据绑定对于输入框等可输入元素,可设</div> </li> <li><a href="/article/1831981807860543488.htm" title="HTML和HTML5有什么区别" target="_blank">HTML和HTML5有什么区别</a> <span class="text-muted">好哈优学编程</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</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>HTML(超文本标记语言)是构建网页的基础,而HTML5是HTML的最新版本。虽然HTML和HTML5在许多方面相似,但HTML5引入了许多新的特性和改进,使得网页开发更加高效和功能丰富。一、HTML概述HTML,即超文本标记语言,是构建网页的标准语言。最初版本的HTML简单地定义了网页的结构和内容,包括文本、图片、链接等元素。HTML的基本标签包括、、、、等,它们帮助浏览器正确渲染网页内容。主要</div> </li> <li><a href="/article/1831556227981733888.htm" title="ecmascript和javascript的区别" target="_blank">ecmascript和javascript的区别</a> <span class="text-muted">丁爸</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF/1.htm">web前端</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>1.简介1.1.概述1.1.1.ecmascriptECMAScript(简称ES)是JavaScript编程语言的一个标准化版本。它是为网络开发设计的一种轻量级的脚本语言,主要用于在网页上实现交互性和动态效果。ECMAScript是该语言的标准名称,而JavaScript是其最知名和广泛使用的实现。1.1.2.javascriptJavaScript是一种高级编程语言,主要用于网页开发,它使得网</div> </li> <li><a href="/article/1831541980530831360.htm" title="【探索 Ajax:提升网页动态交互的利器】" target="_blank">【探索 Ajax:提升网页动态交互的利器】</a> <span class="text-muted">Yhame.</span> <a class="tag" taget="_blank" href="/search/code/1.htm">code</a><a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><a class="tag" taget="_blank" href="/search/%E4%BA%A4%E4%BA%92/1.htm">交互</a><a class="tag" taget="_blank" href="/search/okhttp/1.htm">okhttp</a> <div>探索Ajax:提升网页动态交互的利器引言在现代网页开发中,Ajax(AsynchronousJavaScriptandXML)是一种常见且强大的技术。它允许我们在不重新加载整个页面的情况下,异步更新网页的部分内容。这不仅提升了用户体验,还减少了页面加载时间,提高了网站的响应速度。今天,我们将深入探讨Ajax的应用场景及其常见搭配技术,帮助你更好地掌握这项技能。什么是Ajax?Ajax是一种在不刷新</div> </li> <li><a href="/article/1831335880372088832.htm" title="CSS和SCSS之间的区别" target="_blank">CSS和SCSS之间的区别</a> <span class="text-muted">ac-er8888</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a><a class="tag" taget="_blank" href="/search/less/1.htm">less</a><a class="tag" taget="_blank" href="/search/stylus/1.htm">stylus</a> <div>CSS是用于网页开发的样式语言。它可以帮助设计师为网页设置样式,使其更具吸引力。CSS是Web开发三个基本部分之一,其他两个是JavaScript和HTML。CSS的目标是实现内容和表示的分离,包括布局、颜色和字体。这种分离提高了内容的可访问性,提供了更多的灵活性和对表示特性规范的控制。通过在单独的.css文件中指定相关的CSS,多个网页可以共享格式,减少结构上下文中的复杂性和重复性。在网页中,每</div> </li> <li><a href="/article/1831049729308454912.htm" title="JavaWeb开发知识总结(JSP,EL,JSTL)" target="_blank">JavaWeb开发知识总结(JSP,EL,JSTL)</a> <span class="text-muted">Sunmos</span> <a class="tag" taget="_blank" href="/search/JavaWeb/1.htm">JavaWeb</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/EL%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">EL表达式</a><a class="tag" taget="_blank" href="/search/JSTL%E6%A0%87%E7%AD%BE%E5%BA%93/1.htm">JSTL标签库</a> <div>JavaWeb开发知识总结(JSP,EL,JSTL)1.JSP概述JSP技术:Java服务器端页面(JavaServerPages),是一种动态网页开发技术。JSP的组成:HTML+Java代码+JSP自身元素。JSP自身元素包括JSP指令,JSP动作标签和JSP的内置对象。2.JSP执行流程JSP的本质是Servlet,tomcat服务器会将jsp文件进行编译生成一个servlet.java文件</div> </li> <li><a href="/article/1830818689818128384.htm" title="Java Servlet" target="_blank">Java Servlet</a> <span class="text-muted">Qi妙代码</span> <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>1.Servlet进行动态网页开发1.1.用于开发动态的网页书写流程:写一个class类,去继承一个Httpservlet重写service方法,注意一定要super.service()进行动态网页的开发在web.xml中配置Servlet01com.wyb.servlet.Servlet01Servlet01/servlet/Servlet01注意:servlet-name是自己任意命名的,ur</div> </li> <li><a href="/article/1830726423149637632.htm" title="Web安全之XSS跨站脚本攻击" target="_blank">Web安全之XSS跨站脚本攻击</a> <span class="text-muted">Shadow_143</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/1.htm">渗透测试</a> <div>1.XSS漏洞简介XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。2.XSS</div> </li> <li><a href="/article/1830680029906956288.htm" title="innerHTML与XSS攻击" target="_blank">innerHTML与XSS攻击</a> <span class="text-muted">贾明恣</span> <a class="tag" taget="_blank" href="/search/JavaScript%E5%89%8D%E7%AB%AF%E8%BF%9B%E9%98%B6/1.htm">JavaScript前端进阶</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>HTML5为所有元素提供了一个innerHTML属性,既能获取对象的内容又能向对象插入内容属性值:HTML标签/文本浏览器会将属性值解析为相应的DOM树HTML解析器在浏览器中是底层代码比JavaScript方法快很多,同时意味着替换元素上的关联事件处理程序和JavaScript对象需要手动删除。插入script和style元素的时候需要看具体的浏览器XSS攻击XSS攻击通常指的是通过利用网页开发</div> </li> <li><a href="/article/1829969395397521408.htm" title="初识HTML+CSS( 第4章 认识标签 三 )" target="_blank">初识HTML+CSS( 第4章 认识标签 三 )</a> <span class="text-muted">Zhangdake</span> <div>一:使用标签,链接到另一个页面1.用标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这个标签2.语法:链接显示的文本3.title属性的作用,鼠标滑过链接文字时会显示这个属性的文本内容。这个属性在实际网页开发中作用很大,主要方便搜索引擎了解链接地址的内容(语义化更友好)4.只要为文本加入a标签后,文字的颜色就会自动变为蓝色(被点击过的文本颜色为紫色),颜色很难看吧,不过没</div> </li> <li><a href="/article/1829965196249100288.htm" title="程序员:用黑科技码字它不香吗?Windows必装软件!" target="_blank">程序员:用黑科技码字它不香吗?Windows必装软件!</a> <span class="text-muted">折扇戏美人_a48e</span> <div>Windows必装软件,你将掌握▼“分享几款:轻量化易上手,美观编程软件”一.VisualStudioCode(程序员必备写代码工具)1、VisualStudioCode是一款免费开源的微软代码编辑器,支持几乎所有主流的开发语言的语法高亮、括号匹配、代码片段、代码对比Diff、GIT等特性。2、支持插件扩展,并针对网页开发和云端应用开发做了优化。Visualstudiocode下载跨平台支持Win</div> </li> <li><a href="/article/1829838315017302016.htm" title="px、rpx、em以及rem的区别与用法" target="_blank">px、rpx、em以及rem的区别与用法</a> <span class="text-muted">前端小芬芬</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>px、rpx、em、rem是用于网页开发中表示全屏宽度或元素尺寸的单位。1.px(像素):是最常见的单位,它表示屏幕上的实际像素点。在不同设备上,px会根据屏幕的分辨率进行换算,因此在不同设备上显示效果可能会有差异。2.rpx(响应式像素):是微信小程序中引入的单位,主要用于适配不同尺寸的手机屏幕。rpx的换算规则是750rpx等于屏幕宽度,因此可以通过设置不同尺寸下的rpx值来实现适配效果。根据</div> </li> <li><a href="/article/1829526035885027328.htm" title="Web前端" target="_blank">Web前端</a> <span class="text-muted">2301_78085386</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>网页开发学习内容:htmlcssJavaScript两个框架:VUE.jsElementUIUI->userinterface用户界面html(HyperTextMarkupLanguage):超文本标记语言文本:文字字符超文本:网页内容标记:标签标识例如商品上的标签,介绍了商品的信息html语言就是一种标记语言,提供许多的标签,不同的标签功能不同,网页就是通过这些标签描述出来的,最终通过浏览器解</div> </li> <li><a href="/article/1828079778553491456.htm" title="HTML语义化的理解" target="_blank">HTML语义化的理解</a> <span class="text-muted">番茄大大~</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E8%A6%81%E7%82%B9/1.htm">前端基础知识要点</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>话不多说,开门见山。想了解html语义化的伙伴,首先需要对html有基础的认识,那么什么是html呢?html是超文本标记语言,它的设计初衷是为了让网页开发更加简单和易于维护,所以html的任务就是定义网页的基本结构和内容。有点类似于建模的骨架,人体的骨架等。一、什么是html语义化?官方解释:html语义化是指用合理的html标记以及其特有的属性去格式化文档内容。通俗的讲:就是用合理、正确的标签</div> </li> <li><a href="/article/1828053931402555392.htm" title="720VR全景通源码系统:超广视觉+720度的极致体验 +完整的代码包以及搭建教程" target="_blank">720VR全景通源码系统:超广视觉+720度的极致体验 +完整的代码包以及搭建教程</a> <span class="text-muted">源码集结地</span> <a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E5%88%86%E4%BA%AB/1.htm">源码分享</a><a class="tag" taget="_blank" href="/search/720VR%E5%85%A8%E6%99%AF%E9%80%9A%E6%BA%90%E7%A0%81%E7%B3%BB%E7%BB%9F/1.htm">720VR全景通源码系统</a><a class="tag" taget="_blank" href="/search/720VR%E5%85%A8%E6%99%AF%E9%80%9A%E6%BA%90%E7%A0%81/1.htm">720VR全景通源码</a><a class="tag" taget="_blank" href="/search/720VR%E5%85%A8%E6%99%AF%E9%80%9A%E6%BA%90%E7%A0%81%E7%B3%BB%E7%BB%9F%E6%90%AD%E5%BB%BA/1.htm">720VR全景通源码系统搭建</a> <div>在当前的网页开发中,全景图的技术应用越来越广泛。全景图能够给用户带来身临其境的体验,使得网页的视觉效果更加震撼。然而,传统的全景图技术往往存在一些问题,如视角受限、画质不佳等。小编今天来给大家分享一看720VR全景通源码系统,具有720度超广视觉体验。以下是部分代码示例:系统特色功能一览:1.720度全景体验系统支持720度的全景体验,让用户可以从任意角度欣赏全景图。无论是远处的风景,还是近处的细</div> </li> <li><a href="/article/1827951908543885312.htm" title="快速了解AJAX" target="_blank">快速了解AJAX</a> <span class="text-muted">茶卡盐佑星_</span> <a class="tag" taget="_blank" href="/search/ajax/1.htm">ajax</a><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> <div>1、AJAX的概念ajax的全称AsynchronousJavaScriptandXML(异步JavaScript和XML)。ajax是一种创建交互式网页应用的网页开发技术。其中最核心的依赖是浏览器提供的XMLHttpRequest对象,是这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。实现了在页面不刷新的情况下和服务器进行交互。2、AJAX的使用方法1.创建XMLHttpRequest</div> </li> <li><a href="/article/1827886602840535040.htm" title="HTML + CSS 学习指南:从入门到精通" target="_blank">HTML + CSS 学习指南:从入门到精通</a> <span class="text-muted">陈无左耳、</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、HTML+CSS简介HTML和CSS在网页开发中扮演着至关重要的角色。HTML如同网页的骨架,为网页提供了基本的结构和内容。它使用各种标签来定义页面的元素,如标题、段落、图片、链接等,确保信息得以有条理地组织和呈现。CSS则恰似网页的华服,负责赋予网页美观的外观和舒适的布局。通过控制字体、颜色、背景、间距等样式属性,CSS让网页变得更加吸引人,提升用户的阅读和交互体验。二者之间的关系紧密且相辅</div> </li> <li><a href="/article/1826815086992388096.htm" title="Real DOM, Virtual DOM, Shadow DOM,之间有什么区别" target="_blank">Real DOM, Virtual DOM, Shadow DOM,之间有什么区别</a> <span class="text-muted">zayyo</span> <a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><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> <div>RealDOM(真实DOM)RealDOM(真实DOM)是浏览器中的实际文档对象模型。在网页开发中,HTML文档的结构和内容以及与之相关的CSS样式构成了网页的表示。RealDOM表示了这个网页的当前状态,包括所有的HTML元素、属性、文本内容、样式和布局信息等。当一个网页加载时,浏览器会解析HTML和CSS,并根据这些信息构建出RealDOM。RealDOM是一个树状结构,其中每个节点都代表着一</div> </li> <li><a href="/article/1826435463284617216.htm" title="响应式 Web 设计:纯 HTML 和 CSS 的实现技巧" target="_blank">响应式 Web 设计:纯 HTML 和 CSS 的实现技巧</a> <span class="text-muted">清水白石008</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/WEB%E8%AE%BE%E8%AE%A1/1.htm">WEB设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>响应式Web设计:纯HTML和CSS的实现技巧引言随着移动设备的普及,响应式Web设计(ResponsiveWebDesign,RWD)已成为现代网页开发的标准。响应式设计的目标是使网页在不同设备上(如手机、平板和桌面)都能良好显示,提供一致的用户体验。本文将深入探讨如何使用纯HTML和CSS实现响应式Web设计,提供实用的技巧和示例,帮助开发者构建灵活且美观的网页。一、响应式设计的基本概念响应式</div> </li> <li><a href="/article/1773450885851054080.htm" title="python转码" target="_blank">python转码</a> <span class="text-muted">Desamond</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>转码在许多场景中都有应用,以下是一些常见的场景:网页开发:当用户在网页上输入文本时,可能需要将特殊字符(如空格、引号、特殊符号等)进行转码,以防止这些字符对URL或HTML代码产生干扰。文件名处理:在处理文件名时,可能需要将特殊字符进行转码,以避免文件名被错误地解析或显示。数据传输:在数据传输过程中,为了确保数据的完整性和正确性,可能需要将数据中的特殊字符进行转码。数据存储:在数据库或数据存储中,</div> </li> <li><a href="/article/1759557301028614144.htm" title="4.1.浏览器的开发者工具" target="_blank">4.1.浏览器的开发者工具</a> <span class="text-muted">sty3318</span> <a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>浏览器的开发者工具是一组内置于现代浏览器的工具集,旨在帮助开发人员进行网页开发、调试和性能优化。这些工具提供了丰富的功能和特性,可以对网页的结构、样式、脚本和网络请求进行实时监控、调试和分析。下面是开发者工具的主要用途:调试和修复问题开发者工具允许开发人员检查和调试网页上的问题,如JavaScript错误、CSS样式问题、网络请求问题等。通过在开发者工具中设置断点、观察变量、查看日志和错误报告等,</div> </li> <li><a href="/article/1757930348953485312.htm" title="HTML5与CSS3总结" target="_blank">HTML5与CSS3总结</a> <span class="text-muted">胡小七</span> <a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>HTML5总结1.HTML5由W3C和WHAT组织机构共同研发出来的,于2014年正式发布。2.HTML5成为了新一代网页开发标准。3.HTML5新特性(面试)1)增加了audio和video音频播放,抛弃了Flash2)新增了canvas画布(绘画,制作动画(如小游戏开发等))3)地理定位4)增加了离线缓存5)硬件加速6)WebSocket(全双工通信)7)增加了本地存储8)新增了一些语义化标签</div> </li> <li><a href="/article/38.htm" title="ASM系列六 利用TreeApi 添加和移除类成员" target="_blank">ASM系列六 利用TreeApi 添加和移除类成员</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/1.htm">动态代理</a><a class="tag" taget="_blank" href="/search/ASM/1.htm">ASM</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81%E6%8A%80%E6%9C%AF/1.htm">字节码技术</a><a class="tag" taget="_blank" href="/search/TreeAPI/1.htm">TreeAPI</a> <div>    同生成的做法一样,添加和移除类成员只要去修改fields和methods中的元素即可。这里我们拿一个简单的类做例子,下面这个Task类,我们来移除isNeedRemove方法,并且添加一个int 类型的addedField属性。   package asm.core; /** * Created by yunshen.ljy on 2015/6/</div> </li> <li><a href="/article/165.htm" title="Springmvc-权限设计" target="_blank">Springmvc-权限设计</a> <span class="text-muted">bee1314</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a> <div> 万丈高楼平地起。 权限管理对于管理系统而言已经是标配中的标配了吧,对于我等俗人更是不能免俗。同时就目前的项目状况而言,我们还不需要那么高大上的开源的解决方案,如Spring Security,Shiro。小伙伴一致决定我们还是从基本的功能迭代起来吧。 目标: 1.实现权限的管理(CRUD) 2.实现部门管理 (CRUD) 3.实现人员的管理 (CRUD) 4.实现部门和权限</div> </li> <li><a href="/article/292.htm" title="算法竞赛入门经典(第二版)第2章习题" target="_blank">算法竞赛入门经典(第二版)第2章习题</a> <span class="text-muted">CrazyMizzz</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>2.4.1 输出技巧 #include <stdio.h> int main() { int i, n; scanf("%d", &n); for (i = 1; i <= n; i++) printf("%d\n", i); return 0; } 习题2-2 水仙花数(daffodil</div> </li> <li><a href="/article/419.htm" title="struts2中jsp自动跳转到Action" target="_blank">struts2中jsp自动跳转到Action</a> <span class="text-muted">麦田的设计者</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/webxml/1.htm">webxml</a><a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E8%B7%B3%E8%BD%AC/1.htm">自动跳转</a> <div>1、在struts2的开发中,经常需要用户点击网页后就直接跳转到一个Action,执行Action里面的方法,利用mvc分层思想执行相应操作在界面上得到动态数据。毕竟用户不可能在地址栏里输入一个Action(不是专业人士)   2、<jsp:forward page="xxx.action" /> ,这个标签可以实现跳转,page的路径是相对地址,不同与jsp和j</div> </li> <li><a href="/article/546.htm" title="php 操作webservice实例" target="_blank">php 操作webservice实例</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/webservice/1.htm">webservice</a> <div>首先大家要简单了解了何谓webservice,接下来就做两个非常简单的例子,webservice还是逃不开server端与client端。我测试的环境为:apache2.2.11 php5.2.10做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll; OK 现在我们来体验webservice //server端 serve</div> </li> <li><a href="/article/673.htm" title="Windows下使用Vagrant安装linux系统" target="_blank">Windows下使用Vagrant安装linux系统</a> <span class="text-muted">_wy_</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/vagrant/1.htm">vagrant</a> <div>准备工作: 下载安装 VirtualBox :https://www.virtualbox.org/ 下载安装 Vagrant :http://www.vagrantup.com/ 下载需要使用的 box : 官方提供的范例:http://files.vagrantup.com/precise32.box 还可以在 http://www.vagrantbox.es/ </div> </li> <li><a href="/article/800.htm" title="更改linux的文件拥有者及用户组(chown和chgrp)" target="_blank">更改linux的文件拥有者及用户组(chown和chgrp)</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/chgrp/1.htm">chgrp</a><a class="tag" taget="_blank" href="/search/chown/1.htm">chown</a> <div>本文(转) http://blog.163.com/yanenshun@126/blog/static/128388169201203011157308/ http://ydlmlh.iteye.com/blog/1435157 一、基本使用: 使用chown命令可以修改文件或目录所属的用户:        命令</div> </li> <li><a href="/article/927.htm" title="linux下抓包工具" target="_blank">linux下抓包工具</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>原文地址: http://blog.chinaunix.net/uid-23670869-id-2610683.html tcpdump -nn -vv -X udp port 8888 上面命令是抓取udp包、端口为8888 netstat -tln 命令是用来查看linux的端口使用情况 13 . 列出所有的网络连接 lsof -i 14. 列出所有tcp 网络连接信息 l</div> </li> <li><a href="/article/1054.htm" title="我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”" target="_blank">我觉得mybatis是垃圾!:“每一个用mybatis的男纸,你伤不起”</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>最近看了  每一个用mybatis的男纸,你伤不起 原文地址 :http://www.iteye.com/topic/1073938 发表一下个人看法。欢迎大神拍砖; 个人一直使用的是Ibatis框架,公司对其进行过小小的改良; 最近换了公司,要使用新的框架。听说mybatis不错;就对其进行了部分的研究; 发现多了一个mapper层;个人感觉就是个dao; </div> </li> <li><a href="/article/1181.htm" title="解决java数据交换之谜" target="_blank">解决java数据交换之谜</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BA%A4%E6%8D%A2/1.htm">数据交换</a> <div>交换两个数字的方法有以下三种 ,其中第一种最常用   /* 输出最小的一个数 */ public class jiaohuan1 { public static void main(String[] args) { int a =4; int b = 3; if(a<b){ // 第一种交换方式 int tmep =</div> </li> <li><a href="/article/1308.htm" title="渐变显示" target="_blank">渐变显示</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div><style type="text/css"> #wxf { FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#ffffff, EndColorStr=#97FF98); height: 25px; } </style></div> </li> <li><a href="/article/1435.htm" title="探索JUnit4扩展:断言语法assertThat" target="_blank">探索JUnit4扩展:断言语法assertThat</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/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/assertThat/1.htm">assertThat</a> <div>一.概述         JUnit 设计的目的就是有效地抓住编程人员写代码的意图,然后快速检查他们的代码是否与他们的意图相匹配。 JUnit 发展至今,版本不停的翻新,但是所有版本都一致致力于解决一个问题,那就是如何发现编程人员的代码意图,并且如何使得编程人员更加容易地表达他们的代码意图。JUnit 4.4 也是为了如何能够</div> </li> <li><a href="/article/1562.htm" title="【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}" target="_blank">【Gson三】Gson解析{"data":{"IM":["MSN","QQ","Gtalk"]}}</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a> <div>  如何把如下简单的JSON字符串反序列化为Java的POJO对象? {"data":{"IM":["MSN","QQ","Gtalk"]}}   下面的POJO类Model无法完成正确的解析:   import com.google.gson.Gson;</div> </li> <li><a href="/article/1689.htm" title="【Kafka九】Kafka High Level API vs. Low Level API" target="_blank">【Kafka九】Kafka High Level API vs. Low Level API</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a> <div>1. Kafka提供了两种Consumer API High Level Consumer API Low Level Consumer API(Kafka诡异的称之为Simple Consumer API,实际上非常复杂) 在选用哪种Consumer API时,首先要弄清楚这两种API的工作原理,能做什么不能做什么,能做的话怎么做的以及用的时候,有哪些可能的问题  </div> </li> <li><a href="/article/1816.htm" title="在nginx中集成lua脚本:添加自定义Http头,封IP等" target="_blank">在nginx中集成lua脚本:添加自定义Http头,封IP等</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/nginx+lua/1.htm">nginx lua</a> <div>Lua是一个可以嵌入到Nginx配置文件中的动态脚本语言,从而可以在Nginx请求处理的任何阶段执行各种Lua代码。刚开始我们只是用Lua 把请求路由到后端服务器,但是它对我们架构的作用超出了我们的预期。下面就讲讲我们所做的工作。 强制搜索引擎只索引mixlr.com Google把子域名当作完全独立的网站,我们不希望爬虫抓取子域名的页面,降低我们的Page rank。 location /{</div> </li> <li><a href="/article/1943.htm" title="java-归并排序" target="_blank">java-归并排序</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; public class MergeSort { public static void main(String[] args) { int[] a={20,1,3,8,5,9,4,25}; mergeSort(a,0,a.length-1); System.out.println(Arrays.to</div> </li> <li><a href="/article/2070.htm" title="Netty源码学习-CompositeChannelBuffer" target="_blank">Netty源码学习-CompositeChannelBuffer</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>CompositeChannelBuffer体现了Netty的“Transparent Zero Copy” 查看API( http://docs.jboss.org/netty/3.2/api/org/jboss/netty/buffer/package-summary.html#package_description) 可以看到,所谓“Transparent Zero Copy”是通</div> </li> <li><a href="/article/2197.htm" title="Android中给Activity添加返回键" target="_blank">Android中给Activity添加返回键</a> <span class="text-muted">hotsunshine</span> <a class="tag" taget="_blank" href="/search/Activity/1.htm">Activity</a> <div> // this need android:minSdkVersion="11" getActionBar().setDisplayHomeAsUpEnabled(true); @Override public boolean onOptionsItemSelected(MenuItem item) { </div> </li> <li><a href="/article/2324.htm" title="静态页面传参" target="_blank">静态页面传参</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/%E9%9D%99%E6%80%81/1.htm">静态</a> <div> $(document).ready(function () { var request = { QueryString : function (val) { var uri = window.location.search; var re = new RegExp("" + val + "=([^&?]*)", &</div> </li> <li><a href="/article/2451.htm" title="Windows中查找某个目录下的所有文件中包含某个字符串的命令" target="_blank">Windows中查找某个目录下的所有文件中包含某个字符串的命令</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E6%89%BE%E6%9F%90%E4%B8%AA%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6/1.htm">查找某个目录下的所有文件</a><a class="tag" taget="_blank" href="/search/%E5%8C%85%E5%90%AB%E6%9F%90%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2/1.htm">包含某个字符串</a> <div>findstr可以完成这个工作。   [html]  view plain copy   >findstr /s /i "string" *.*   上面的命令表示,当前目录以及当前目录的所有子目录下的所有文件中查找"string&qu</div> </li> <li><a href="/article/2578.htm" title="改善程序代码质量的一些技巧" target="_blank">改善程序代码质量的一些技巧</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a> <div>有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码 时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。让我们看一些基本的编程技巧:    尽量保持方法简短    尽管很多人都遵</div> </li> <li><a href="/article/2705.htm" title="SharedPreferences对数据的存储" target="_blank">SharedPreferences对数据的存储</a> <span class="text-muted">dcj3sjt126com</span> <div>SharedPreferences简介:                                                   &nbs</div> </li> <li><a href="/article/2832.htm" title="linux复习笔记之bash shell (2) bash基础" target="_blank">linux复习笔记之bash shell (2) bash基础</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/bash/1.htm">bash</a><a class="tag" taget="_blank" href="/search/bash+shell/1.htm">bash shell</a> <div>转载请出自出处: http://eksliang.iteye.com/blog/2104329 1.影响显示结果的语系变量(locale)  1.1locale这个命令就是查看当前系统支持多少种语系,命令使用如下: [root@localhost shell]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" </div> </li> <li><a href="/article/2959.htm" title="Android零碎知识总结" target="_blank">Android零碎知识总结</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>1、CopyOnWriteArrayList add(E) 和remove(int index)都是对新的数组进行修改和新增。所以在多线程操作时不会出现java.util.ConcurrentModificationException错误。 所以最后得出结论:CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。发生修改时候做copy,新老版本分离,保证读的高</div> </li> <li><a href="/article/3086.htm" title="HoverTree.Model.ArticleSelect类的作用" target="_blank">HoverTree.Model.ArticleSelect类的作用</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>ArticleSelect类在命名空间HoverTree.Model中可以认为是文章查询条件类,用于存放查询文章时的条件,例如HvtId就是文章的id。HvtIsShow就是文章的显示属性,当为-1是,该条件不产生作用,当为0时,查询不公开显示的文章,当为1时查询公开显示的文章。HvtIsHome则为是否在首页显示。HoverTree系统源码完全开放,开发环境为Visual Studio 2013</div> </li> <li><a href="/article/3213.htm" title="PHP 判断是否使用代理 PHP Proxy Detector" target="_blank">PHP 判断是否使用代理 PHP Proxy Detector</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/proxy/1.htm">proxy</a> <div>1. php 类 I found this class looking for something else actually but I remembered I needed some while ago something similar and I never found one. I'm sure it will help a lot of developers who try to </div> </li> <li><a href="/article/3340.htm" title="apache的math库中的回归——regression(翻译)" target="_blank">apache的math库中的回归——regression(翻译)</a> <span class="text-muted">lvdccyb</span> <a class="tag" taget="_blank" href="/search/Math/1.htm">Math</a><a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a> <div>这个Math库,虽然不向weka那样专业的ML库,但是用户友好,易用。 多元线性回归,协方差和相关性(皮尔逊和斯皮尔曼),分布测试(假设检验,t,卡方,G),统计。   数学库中还包含,Cholesky,LU,SVD,QR,特征根分解,真不错。   基本覆盖了:线代,统计,矩阵, 最优化理论 曲线拟合 常微分方程 遗传算法(GA), 还有3维的运算。。。 </div> </li> <li><a href="/article/3467.htm" title="基础数据结构和算法十三:Undirected Graphs (2)" target="_blank">基础数据结构和算法十三:Undirected Graphs (2)</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a> <div>  Design pattern for graph processing. Since we consider a large number of graph-processing algorithms, our initial design goal is to decouple our implementations from the graph representation</div> </li> <li><a href="/article/3594.htm" title="云计算平台最重要的五项技术" target="_blank">云计算平台最重要的五项技术</a> <span class="text-muted">sumapp</span> <a class="tag" taget="_blank" href="/search/%E4%BA%91%E8%AE%A1%E7%AE%97/1.htm">云计算</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%B9%B3%E5%8F%B0/1.htm">云平台</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E5%9F%8E%E4%BA%91/1.htm">智城云</a> <div>云计算平台最重要的五项技术 1、云服务器 云服务器提供简单高效,处理能力可弹性伸缩的计算服务,支持国内领先的云计算技术和大规模分布存储技术,使您的系统更稳定、数据更安全、传输更快速、部署更灵活。 特性 机型丰富 通过高性能服务器虚拟化为云服务器,提供丰富配置类型虚拟机,极大简化数据存储、数据库搭建、web服务器搭建等工作; 仅需要几分钟,根据CP</div> </li> <li><a href="/article/3721.htm" title="《京东技术解密》有奖试读获奖名单公布" target="_blank">《京东技术解密》有奖试读获奖名单公布</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a> <div>ITeye携手博文视点举办的12月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。  12月试读活动回顾: http://webmaster.iteye.com/blog/2164754 本次技术图书试读活动获奖名单及相应作品如下: 一等奖(两名) Microhardest:http://microhardest.ite</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>