将 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/1900409262132228096.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/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(CascadingStyleSheets,层叠样式表)则承担着渲染HTML元素标签样式的重任,赋予网页丰富的视觉效果。一、CSS的魅力展现CSS能够实现诸如改变文字的样式与颜色(Look!Stylesandcolors)、灵活操控文本(ManipulateText)、设置元素的颜色和盒子模型(Colors,Boxes)等诸多功能,极大地提升</div> </li> <li><a href="/article/1899589640034250752.htm" title="如何在Windows 10上安装Python?" target="_blank">如何在Windows 10上安装Python?</a> <span class="text-muted">字节王德发</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><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>在今天的数字时代,Python已经成为了一个非常流行的编程语言。无论你是想做数据分析、网页开发,还是人工智能,Python都能满足你的需求。如果你使用的是Windows10系统,安装Python其实并不复杂。下面就让我带你一步一步走过这个过程,确保你可以顺利地在你的电脑上运行Python。1.准备工作在开始之前,确保你的Windows10系统已经更新到最新版本。打开“设置”,选择“更新与安全”,然</div> </li> <li><a href="/article/1899328948634972160.htm" title="CSS入门指南:从零开始学习网页开发——(一)简介" target="_blank">CSS入门指南:从零开始学习网页开发——(一)简介</a> <span class="text-muted">GIS小白吃</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、什么是CSS?CSS(CascadingStyleSheets,层叠样式表)是一种用于描述网页的外观和布局的样式表语言。它通过定义网页元素的样式(如颜色、字体、边距等)来与HTML内容分离,提升了网页的可维护性和设计的灵活性。CSS的核心目的是增强网页的表现力。早期的网页仅使用HTML来进行内容的展示,但由于HTML只能描述内容的结构,页面设计和内容变得难以管理。于是,CSS作为一种辅助技术应</div> </li> <li><a href="/article/1898721911668535296.htm" title="JavaScript网页设计案例:动态交互式任务列表" target="_blank">JavaScript网页设计案例:动态交互式任务列表</a> <span class="text-muted">学不完了是吧</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> <div>在现代网页开发中,JavaScript被广泛应用于实现动态交互效果。看完这一篇你就可以设计一个动态任务列表,全面展示HTML、CSS和JavaScript在前端开发中的实际应用。通过本案例,你将深入了解事件监听、DOM操作以及用户交互设计的实现过程。案例需求在设计动态任务列表时,我们需要满足以下功能需求:动态添加任务,并显示在列表中。勾选任务表示完成状态,并通过样式标记。单独删除任务。一键清空所有</div> </li> <li><a href="/article/1898640422507442176.htm" title="Thymeleaf vs JSP vs FreeMarker:模板引擎深度解析与选型指南" target="_blank">Thymeleaf vs JSP vs FreeMarker:模板引擎深度解析与选型指南</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/Thymeleaf/1.htm">Thymeleaf</a><a class="tag" taget="_blank" href="/search/FreeMarker/1.htm">FreeMarker</a><a class="tag" taget="_blank" href="/search/JSP/1.htm">JSP</a> <div>以下是一篇关于Thymeleaf与其他主流模板引擎(如JSP、FreeMarker、Velocity等)的解析一、模板引擎的核心价值模板引擎是动态网页开发的关键工具,通过将数据与静态模板结合生成最终页面。其核心优势包括:动态内容渲染:通过表达式或标签实现数据动态填充;代码复用:支持模块化片段(如页头、页脚)的复用;前后端解耦:允许开发者与设计师协作,提升开发效率1712。二、主流模板引擎深度对比1</div> </li> <li><a href="/article/1898532680648159232.htm" title="优化网页性能:利用onpageshow事件实现页面状态刷新" target="_blank">优化网页性能:利用onpageshow事件实现页面状态刷新</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>在网页开发中,优化页面性能是至关重要的一环。一个常见的问题是,当用户使用浏览器的后退按钮或者前进按钮导航页面时,页面可能会从浏览器的缓存中恢复,而不会触发页面的重新加载,导致页面状态可能不正确。为了解决这个问题,可以利用浏览器提供的onpageshow事件来检测页面是否是从缓存中恢复的,并在需要时手动刷新页面状态。在JavaScript中,可以监听window对象的onpageshow事件,该事件</div> </li> <li><a href="/article/1898400065966370816.htm" title="Laya2.x游戏引擎入门系列(二):UI界面开发" target="_blank">Laya2.x游戏引擎入门系列(二):UI界面开发</a> <span class="text-muted">安也 i</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>前端开发和游戏开发相信选择laya游戏引擎这类h5游戏引擎的开发者或多或少都有一些前端的开发经验,在开始开发小游戏之后会努力寻找和过往开发经历相似的地方。最后会发现二者之间的关系类似于网页开发和node.js服务端开发之间的关系,虽然都是使用了前端的开发语言(JS或TS),但是背后涉及的知识点却完全不同。小游戏全部是通过canvas或者webgl画在页面中,而网页开发是通过浏览器去做的渲染。我们在</div> </li> <li><a href="/article/1898388059955720192.htm" title="Flask 框架简介" target="_blank">Flask 框架简介</a> <span class="text-muted">dowhileprogramming</span> <a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>Flask框架简介Flask框架简介Flask框架简介Flask是一个Python微型网页开发框架。微型指明了Flash的核心是轻量级的,但是可以灵活扩展。下面的简单的例子要和一个数据库系统交互。Django附带了与最常见的数据库交互所需的库。另一方面,Flask允许根据数据库类型或集成方法使用扩展来实现相同的目标。Flask的另一个理念是使用约定而不是配置,这意味着如果我们遵循网页开发的标准约定</div> </li> <li><a href="/article/1898019196848107520.htm" title="小程序跳转H5的url后 报错了: 无法获取用户身份 登录的微信号未绑定为公众号(wx50775cad5d08d7ad)的网页开发者,无法使用 Oauth 授权登录获取用户身份,请查看文档并完成绑定" target="_blank">小程序跳转H5的url后 报错了: 无法获取用户身份 登录的微信号未绑定为公众号(wx50775cad5d08d7ad)的网页开发者,无法使用 Oauth 授权登录获取用户身份,请查看文档并完成绑定</a> <span class="text-muted">众乐乐_2008</span> <a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%B8%B8%E4%BB%A3%E7%A0%81/1.htm">日常代码</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>小程序跳转H5的url后报错了:无法获取用户身份登录的微信号未绑定为公众号(wx50775cad5d08d7ad)的网页开发者,无法使用Oauth授权登录获取用户身份,请查看文档并完成绑定调试微信网页授权使用微信号登录开发者工具后,可以在开发者工具上调试微信网页授权,和微信客户端一样,网页可以获取到当前登录开发者工具的微信账号的信息。出于以下两点原因,我们要求调试微信网页授权,必须开发者微信号与公</div> </li> <li><a href="/article/1896566483274756096.htm" title="网络安全:攻击和防御练习(全战课), DDos压力测试" target="_blank">网络安全:攻击和防御练习(全战课), DDos压力测试</a> <span class="text-muted">网安-轩逸</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/ddos/1.htm">ddos</a><a class="tag" taget="_blank" href="/search/okhttp/1.htm">okhttp</a> <div>XSS跨站脚本攻击:Cross-sitescripting(简称xss)跨站脚本。一种网站的安全漏洞的攻击,代码注入攻击的一种。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。</div> </li> <li><a href="/article/1896015991305990144.htm" title="HTML学习笔记" target="_blank">HTML学习笔记</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>文章目录(一)HTML简介一、网页1.什么是网页2.什么是HTML二、常用的浏览器1.常用的浏览器2.浏览器内核(渲染引擎)3.web标准(二)HTML标签一、HTML语法规范1.基本语法概述2.标签的关系二、HTML基本结构标签三、网页开发工具1.VSCode的使用:2.vsCode工具生成骨架标签新增代码1)标签2)lang语言3)charset字符集四、HTML常用标签1.语义化标签:2.标</div> </li> <li><a href="/article/1895795215093002240.htm" title="HTML---css选择器" target="_blank">HTML---css选择器</a> <span class="text-muted">lh_freak</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>CSS指层叠样式表,是一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,CSS文件扩展名为.css。使用CSS我们可以大大提升网页开发的工作效率!插入样式表的方法有三种:外部样式(Externalstylesheet)内部样式(Internalstylesheet)内联样式(Inlinestyle)内联样式(行内样式)hello样式直接写入到本元素标签中</div> </li> <li><a href="/article/1895697145059667968.htm" title="Python web基础知识,后端服务器开发,观点还停留在Java上吗!" target="_blank">Python web基础知识,后端服务器开发,观点还停留在Java上吗!</a> <span class="text-muted">道-闇影</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web%E5%BC%80%E5%8F%91/1.htm">web开发</a> <div>极简生活,极简编程,简到极致,就是完美!在写CSDN的Python技能树体验五(web应用开发:Djiago、Tornado、Flask)—终于可以写点能看的了!之前,wc,提前剧透了!先对web开发做一个简要的说明,话不多说,往下看!web应用开发的含义web应用开发分为:前端网页开发,后端服务器开发,还有前后端的一个通信技术!各个部分需要哪些基础前端开发基础:HTML,CSS,JavaScti</div> </li> <li><a href="/article/1895370203173285888.htm" title="01-学习路线及软件下载" target="_blank">01-学习路线及软件下载</a> <span class="text-muted">CCChaya-软件技术教师</span> <a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</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.什么是网页2.什么是HTML3.Web标准3.1Web标准的构成3.2为什么需要Web标准4.网页开发工具(及插件)4.1VSCode的下载及使用4.1.1VSCode基本使用4.1.2VSCode插件安装4.1.3VSCode基本设置5.学习路线1.什么是网页网页主要由文字、图像和超链接(超链接为单击可以跳转到其他页面的元素)等元素构成。当然除了这些元素,网页中还可以包含音频、视频以及动</div> </li> <li><a href="/article/1895153907944976384.htm" title="通过 Python FastAPI 开发一个快速的 Web API 项目" target="_blank">通过 Python FastAPI 开发一个快速的 Web API 项目</a> <span class="text-muted">Python_P叔</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/fastapi/1.htm">fastapi</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Python如此受欢迎的众多原因之一是Python有大量成熟和稳定的库可供选择:网页开发有:Django和Flask,提供了很好的网络开发体验和大量的有用文档机器学习有:scikit-learn、Keras等,提供了丰富的机器学习的包和数据处理和可视化工具。FastAPI是一个快速、轻量级的现代API,与其他基于Python的Web框架(如Flask和Django)相比,有一个更容易的学习曲线。F</div> </li> <li><a href="/article/1894948105346936832.htm" title="《从零到全栈:JavaScript新增的ES6语法》" target="_blank">《从零到全栈:JavaScript新增的ES6语法》</a> <span class="text-muted">CodeComposer</span> <a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JavaScript是一门弱类型的脚本语言,广泛应用于网页开发中。ES6(ECMAScript2015)是JavaScript的第六个版本,引入了许多新特性,使得JavaScript更加现代化和强大。本文将详细介绍JavaScript的基础概念、ES6的新特性及其应用场景。一、JavaScript核心概念1.JavaScript的本质弱类型语言:变量声明无需指定类型,可动态存储任意数据。vara=</div> </li> <li><a href="/article/1894947978943197184.htm" title="《从零到全栈:HTML5新增元素 & API》" target="_blank">《从零到全栈:HTML5新增元素 & API》</a> <span class="text-muted">CodeComposer</span> <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><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a> <div>HTML5是HTML4的升级版本,它不仅简化了HTML4的冗余代码,还引入了许多新特性,使得网页开发更加高效和灵活。本文将详细介绍HTML5的概念、新增元素、API以及一些实际应用案例。一、HTML5概念HTML5是HTML的第五个版本,它简化了文档类型声明,并引入了许多新特性,使得网页开发更加高效。以下是一个简单的HTML5文档结构:HTML5示例头部导航主体侧栏主体文章尾部语义化布局的优势文档</div> </li> <li><a href="/article/1894925794875076608.htm" title="Web网页开发——水果忍者" target="_blank">Web网页开发——水果忍者</a> <span class="text-muted">大道归简</span> <a class="tag" taget="_blank" href="/search/AI%E6%A8%A1%E5%9E%8B%E6%8E%A2%E7%B4%A2/1.htm">AI模型探索</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/html/1.htm">html</a> <div>1.介绍复刻经典小游戏——水果忍者2.预览3.代码FruitNinjaWebDemobody{margin:0;padding:0;overflow:hidden;background-color:#333;font-family:Arial,sans-serif;touch-action:none;}#gameCanvas{background-color:#87CEEB;display:blo</div> </li> <li><a href="/article/1894428115510292480.htm" title="CSS 真的会阻塞文档解析吗?从浏览器渲染原理深入探究一下" target="_blank">CSS 真的会阻塞文档解析吗?从浏览器渲染原理深入探究一下</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/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8%E6%B8%B2%E6%9F%93/1.htm">浏览器渲染</a> <div>在网页开发领域,一个常见的疑问是CSS是否会阻塞文档解析。理解这一问题对于优化网页性能、提升用户体验至关重要。要深入解答这个问题,需要从浏览器渲染网页的原理说起。浏览器渲染网页的基本流程浏览器在接收到HTML文档后,会依次进行以下几个主要步骤:解析HTML:浏览器从网络或本地获取HTML文件,然后开始解析,将HTML代码转换为DOM(DocumentObjectModel,文档对象模型)树。DOM</div> </li> <li><a href="/article/1894197649888833536.htm" title="Vue案例之实现ToDolist,web网页开发" target="_blank">Vue案例之实现ToDolist,web网页开发</a> <span class="text-muted">睿略咨询信息研究中心</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/%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>文章目录本案例用到了SUI库搭建布局页面,点击进入官网查看使用教程并下载文件使用,也可以自己完成页面布局实现效果核心思想程序代码本案例用到了SUI库搭建布局页面,点击进入官网查看使用教程并下载文件使用,也可以自己完成页面布局实现效果===============================================================1.按回车键输入内容,并清空输入框2.将输</div> </li> <li><a href="/article/1893914626832265216.htm" title="CSS 真的会阻塞文档解析吗?从浏览器渲染原理深入探究一下" target="_blank">CSS 真的会阻塞文档解析吗?从浏览器渲染原理深入探究一下</a> <span class="text-muted"></span> <div>在网页开发领域,一个常见的疑问是CSS是否会阻塞文档解析。理解这一问题对于优化网页性能、提升用户体验至关重要。要深入解答这个问题,需要从浏览器渲染网页的原理说起。浏览器渲染网页的基本流程浏览器在接收到HTML文档后,会依次进行以下几个主要步骤:解析HTML:浏览器从网络或本地获取HTML文件,然后开始解析,将HTML代码转换为DOM(DocumentObjectModel,文档对象模型)树。DOM</div> </li> <li><a href="/article/1893314049328869376.htm" title="CSS常用样式详解:从基础到实战" target="_blank">CSS常用样式详解:从基础到实战</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%9F%BA%E7%A1%80%E7%AF%87/1.htm">基础篇</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>CSS(层叠样式表)是网页开发中的核心技术之一,用于控制网页的外观和布局。通过CSS,我们可以将网页的内容与表现分离,使得网页更加美观、易维护和响应式。本文将详细介绍CSS中的各种常用样式,每个知识点都配有具体的案例,帮助你快速掌握CSS的核心技能。一、CSS基础1.1CSS选择器CSS选择器用于选择你想要样式化的HTML元素。以下是一些常用的选择器:元素选择器:根据元素名称选择元素。案例:所有标</div> </li> <li><a href="/article/1892529999513186304.htm" title="AJAX使用和固定格式" target="_blank">AJAX使用和固定格式</a> <span class="text-muted">乐多_L</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>ajax的全称AsynchronousJavaScriptandXML(异步JavaScript和XML)。ajax是一种创建交互式网页应用的网页开发技术。其中最核心的依赖是浏览器提供的XMLHttpRequest对象,是这个对象使得浏览器可以发出HTTP请求与接收HTTP响应。实现了在页面不刷新的情况下和服务器进行交互。方法描述newXMLHttpRequest()生成一个XMLHttpRequ</div> </li> <li><a href="/article/1892390738520502272.htm" title="前端基础入门:HTML、CSS 和 JavaScript" target="_blank">前端基础入门:HTML、CSS 和 JavaScript</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/1.htm">前端</a><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/js/1.htm">js</a> <div>在现代网页开发中,前端技术扮演着至关重要的角色。无论是个人网站、企业官网,还是复杂的Web应用程序,前端开发的基础技术HTML、CSS和JavaScript都是每个开发者必须掌握的核心技能。本文将详细介绍这三者的基本概念及其应用一、HTML——网页的骨架HTML(HyperTextMarkupLanguage)是构建网页的基础语言。它是网页的结构和内容的标记语言,决定了网页上的文本、图像、表单等元</div> </li> <li><a href="/article/1892186818959437824.htm" title="我悟了!原来本地图片预览还能这样搞" target="_blank">我悟了!原来本地图片预览还能这样搞</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AFjavascript/1.htm">前端javascript</a> <div>Hey,我是Immerse本文首发于【沉浸式趣谈】,我的个人博客https://yaolifeng.com也同步更新。转载请在文章开头注明出处和版权信息。如果本文对您有所帮助,请点赞、评论、转发,支持一下,谢谢!我悟了!原来本地图片预览还能这样搞在网页开发中,经常会遇到需要让用户上传图片并在上传前进行预览的需求。这样做的好处显而易见:用户可以立即看到自己选择的图片是否正确,避免了不必要的上传和服务</div> </li> <li><a href="/article/1890966438739505152.htm" title="在Vue中使用highlight.js代码高亮" target="_blank">在Vue中使用highlight.js代码高亮</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/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/js/1.htm">js</a> <div>代码高亮是在网页开发中常见的需求之一,它可以使代码在页面上以不同的颜色或样式进行突出显示,提高可读性。highlight.js是一个流行的JavaScript库,它提供了丰富的语法高亮功能,支持多种编程语言和模板语言。本文将介绍如何在Vue项目中使用highlight.js来实现代码高亮的效果。步骤1:安装highlight.js首先,我们需要安装highlight.js库。在Vue项目的根目录下</div> </li> <li><a href="/article/1890546033956548608.htm" title="WebGL 导入 OBJ 文件全解析" target="_blank">WebGL 导入 OBJ 文件全解析</a> <span class="text-muted">一只小灿灿</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/WebGL/1.htm">WebGL</a><a class="tag" taget="_blank" href="/search/webgl/1.htm">webgl</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>一、引言WebGL(WebGraphicsLibrary)是一种基于OpenGLES2.0的3D绘图标准,它允许网页开发者在不使用插件的情况下,直接在浏览器中实现高性能的3D图形渲染。OBJ文件格式则是一种广泛使用的3D模型文件格式,它以文本形式存储3D模型的几何信息,包括顶点、法线、纹理坐标和面等。在WebGL中导入OBJ文件可以让开发者方便地在网页中展示和交互3D模型,为网页带来更加丰富的视觉</div> </li> <li><a href="/article/1890330509540651008.htm" title="JavaScript 在 VSCode 中的优势与应用" target="_blank">JavaScript 在 VSCode 中的优势与应用</a> <span class="text-muted">lly202406</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JavaScript在VSCode中的优势与应用引言随着前端技术的发展,JavaScript已经成为了网页开发中最流行的编程语言之一。VisualStudioCode(简称VSCode)作为一款轻量级、可扩展的代码编辑器,因其强大的功能和良好的用户体验,深受广大开发者的喜爱。本文将探讨JavaScript在VSCode中的优势与应用,帮助开发者更好地掌握这门编程语言。一、VSCode的优势1.跨平</div> </li> <li><a href="/article/1888328343921684480.htm" title="深入探讨使用Python和LangChain加载与解析HTML文档:从基础操作到高级应用" target="_blank">深入探讨使用Python和LangChain加载与解析HTML文档:从基础操作到高级应用</a> <span class="text-muted">m0_57781768</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>深入探讨使用Python和LangChain加载与解析HTML文档:从基础操作到高级应用在现代互联网时代,HTML(超文本标记语言)作为一种标准的网页文档格式,广泛应用于各类网站和应用中。无论是网页开发、数据爬取、信息抽取,还是自然语言处理和数据分析,处理HTML文档都是开发者和数据科学家不可避免的任务。然而,HTML文档的结构复杂且多变,往往需要使用专业的工具和库来解析和处理。在Python生态</div> </li> <li><a href="/article/1888162050971070464.htm" title="Web3开发入门:小白必备技能与工具全解析" target="_blank">Web3开发入门:小白必备技能与工具全解析</a> <span class="text-muted">Luna猫(web3版)</span> <a class="tag" taget="_blank" href="/search/web3%E7%AC%94%E8%AE%B0/1.htm">web3笔记</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a><a class="tag" taget="_blank" href="/search/%E6%AF%94%E7%89%B9%E5%B8%81/1.htm">比特币</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6/1.htm">智能合约</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E7%8E%B0%E5%AE%9E/1.htm">虚拟现实</a> <div>在当今数字化浪潮中,Web3的崛起正深刻改变着互联网的格局,引领我们从中心化迈向更加去中心化、用户赋权的崭新时代。对于那些对网页开发满怀热忱的小伙伴们而言,当下无疑是探索Web3、挖掘其潜力并掌握入门技能的黄金时机。接下来,就让我们一同深入这份Web3开发的入门指南吧。一、Web3究竟是什么?Web3,也就是Web3.0,作为互联网发展的第三代产物,其鲜明特征是依托区块链技术构建的去中心化网络与应</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>