”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > JavaScript 框架的历史:DynAPI JavaScript 库的一部分

JavaScript 框架的历史:DynAPI JavaScript 库的一部分

发布于2024-08-29
浏览:908

The History of JavaScript Frameworks: Part  The DynAPI JavaScript Library

JavaScript 框架多年来已经发生了显着的发展,以满足 Web 开发不断增长的需求。本系列从一个早期且有影响力的项目开始:DynAPI JavaScript 库。 DynAPI 为我们今天使用的高级框架奠定了基础,例如 jQuery、Angular 和 React。

DynAPI 的起源

20 世纪 90 年代末,Web 开发还处于早期阶段。 HTML 提供了基本结构,CSS 开始用于样式设计,JavaScript 开始为网页添加交互性。然而,不同网络浏览器之间的不一致使得开发人员很难创建在任何地方都适用的动态内容。

DynAPI 的创建就是为了应对这些挑战。它由 Dan Steinman 开发,最初是他的“Dynamic Duo DHTML 教程”的一部分,该教程帮助开发人员学习如何创建交互式网页。随着教程的发展,Steinman 将最有用的 JavaScript 文件收集到后来的 DynAPI 中,这是一个旨在简化动态 Web 开发的库。

是什么让 DynAPI 如此重要?

DynAPI 是创建可重用、跨浏览器 JavaScript 库的首批尝试之一。其主要目标是帮助开发人员使用在不同浏览器(例如 Internet Explorer 和 Netscape Navigator)上一致工作的工具构建交互式 Web 应用程序。

DynAPI 的主要功能包括:

  • 跨浏览器兼容性:DynAPI 使开发人员能够编写在不同浏览器上可靠运行的代码,解决了当时的一个主要问题。

  • 动态图层:该库允许开发人员动态操作 HTML 元素,从而能够创建动画、交互式菜单和其他引人入胜的功能。

  • 面向对象编程 (OOP):DynAPI 推广了一种更加结构化的 JavaScript 方法,鼓励模块化和可重用的代码,这种做法在后来的框架中成为标准。

DynAPI 的影响

尽管 DynAPI 目前尚未得到广泛认可,但它在塑造 Web 开发方面发挥了至关重要的作用。它引入了可重用代码库的想法,使跨浏览器开发变得更容易——后来的框架将基于这个概念构建。例如,非常受欢迎的 jQuery 受到简化 DOM 操作和确保跨浏览器兼容性的想法的启发,这是 DynAPI 首创的原则。

DynAPI的影响也可以在AngularJS等框架的开发中看到,

挑战与演变

尽管有创新,DynAPI 也有其局限性。它是在网络世界快速变化的时期开发的,保持不同浏览器之间的兼容性是一个持续的挑战。随着 Web 应用程序变得越来越复杂,对更高级工具的需求变得显而易见。

版本声明 本文转载于:https://dev.to/francescoagati/the-history-of-javascript-frameworks-part-1-the-dynapi-javascript-library-3f89?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-03-12
  • 如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    从python import codecs import codecs import codecs 导入 text = codecs.decode('这狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#带有...
    编程 发布于2025-03-12
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    编程 发布于2025-03-12
  • 反应基础〜单位测试/异步测试
    反应基础〜单位测试/异步测试
    当我测试ASYNC操作时,我在测试代码中使用异步/等待。 我需要为测试数据做准备。在这种情况下,我使用JSON服务器。 ・模拟/db.json { “用户”:[ { “ id”:1, “名称”:“ foo” } 这是给出的 } [2 “脚本”...
    编程 发布于2025-03-12
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-03-12
  • 为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    为什么使用固定定位时,为什么具有100%网格板柱的网格超越身体?
    网格超过身体,用100%grid-template-columns 为什么在grid-template-colms中具有100%的显示器,当位置设置为设置的位置时,grid-template-colly修复了?问题: 考虑以下CSS和html: class =“ snippet-code”> g...
    编程 发布于2025-03-12
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-03-12
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call ...
    编程 发布于2025-03-12
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。$("#map").css({ marginT...
    编程 发布于2025-03-12
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-03-12
  • HTML格式标签
    HTML格式标签
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    编程 发布于2025-03-12
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    在尝试为JavaScript对象创建动态键时,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正确的方法采用方括号: jsobj ['key''i] ='example'1; 在JavaScript中,数组是一...
    编程 发布于2025-03-12
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-03-12
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-03-12
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-03-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3