【问题标题】:Need ideas for effective and streamlined JS application development需要有效和简化 JS 应用程序开发的想法
【发布时间】:2025-12-26 03:40:06
【问题描述】:

我一直在开发一个 JS 繁重的 Web 应用程序。由于应用程序将在其上运行的网络的性质,我希望最大限度地减少服务器和客户端之间的流量,并希望尽可能多地在客户端运行。这个应用程序比我之前编写的任何其他应用程序都要大得多,而且我真的在努力简化我的开发,更重要的是,测试。

首先,我不是开发人员,所以我没有受过培训,也不熟悉不同的开发技术,但我边走边学。

大量的试验和错误,堆栈溢出阅读,以及更多的试验和错误。这会导致大量页面重新加载,这意味着我回到了应用程序的第一页,并且必须单击一堆屏幕才能到达我正在处理的部分。一而再,再而三。全部。天。长。

我怎样才能加快这个速度,或者自动化它?我知道有 Selenium WebDriver,但这对于我需要的东西来说似乎有点太复杂了,而且在应用程序的开始部分涉及一些拖放操作,据我所知,Selenium 无法做到这一点。

请帮我想出一个更好的方法来解决这个问题。在这个时代,必须有一些东西可以帮助我。某种将数据提供给应用程序的方法,因此我可以立即到达我需要的点,而无需从第一页开始。我只是不知道我在搜索什么或如何表达我的搜索,因此我不会从 Google 获得同样无用的结果。

附:在 OS X 上开发,所以 Windows 工具对我来说并不适用。此外,大多数用户将使用 Mac。``

【问题讨论】:

  • 您可以对您的应用程序进行编码,以便它在您浏览应用程序时使用 pushState 修改 url,从而允许您刷新页面并直接进入刷新之前所在的页面。这当然意味着让应用程序识别上述网址。
  • 您可能还想尝试一些单元测试。
  • 凯文,谢谢!这也许是我正在寻找的!这是否允许我重新加载单个“页面”,以某种方式保留 DOM 数据?该页面上的评论也将我链接到 history.js,这也可能对我有帮助。
  • @dqhendricks:我调查过,但这似乎有点……涉及

标签: javascript jquery web-applications


【解决方案1】:

即使您对用于开发的 Windows 工具不感兴趣,我也会推荐 John Papa 的 SPA(单页应用程序)开发系列。它涵盖了几乎所有关于 SPA 的 TDD 的主题,毫无疑问会给你的项目带来很多想法。 只需跳过有关 web.api 使用的部分,并考虑使用您熟悉的任何其他工具创建 REST 服务。

http://www.johnpapa.net/building-single-page-apps-with-knockout-jquery-and-web-api-ndash-the-story-begins/

系列中包含的章节:

  • 第 1 部分 - 故事开始(什么是 Code Camper SPA?)

  • 第 2 部分 - 客户端技术

  • 第 3 部分 - 服务器技术(数据层)

  • 第 4 部分 - 使用 ASP.NET Web API 提供 JSON

  • 第 5 部分 - HTML 5 和 ASP.NET Web 优化

  • 第 6 部分 - JavaScript 模块

  • 第 7 部分 - MVVM 和 KnockoutJS

  • 第 8 部分 - 客户端上的数据服务

  • 第 9 部分 - 导航、转换、存储和消息传递

  • 第 10 部分 - 保存、更改跟踪和命令

  • 第 11 部分 - 响应式设计和移动性

【讨论】:

  • 谢谢!这似乎很相关。我一定会看看这个。
  • 即使 Kevin B 给了我所需答案的简短版本,我还是将此答案标记为解决方案。我正在上第三节课,已经学习了很多我真正需要知道的东西,但没有。谢谢你。非常感谢这个网址。
  • @solefald 我大概是在它在复数视觉上发表一周后发现的,大约一周前开始观看,我自己就是喜欢它。
  • @JohnPapa 我确实做到了。此外,我们从它到我们正在从事的几个项目中掌握了很多东西。
【解决方案2】:

听起来您正在创建类似于单加载 Web 应用程序的东西。我将从警告开始。创建单个负载 Web 应用程序比普通 Web 应用程序要困难得多。 (您将在其中进入新页面,重新加载浏览器窗口)。实际上,您必须对附加的事件和创建的对象非常小心,因为它们不会消失,因为您永远不会转到另一个页面,因此您需要丢弃已完成的事情。即使是经验丰富的开发人员也难以应对单一负载的 Web 应用程序。

也就是说,如果您大量使用 javascript,并且您对脚本文件进行了一些更改并希望查看效果,您可以在您的应用程序中创建一个函数(或使用 chrome 中的控制台)来为您提供重新加载脚本文件的能力。基本上,编写一个附加脚本文件的函数,这将重新加载该文件中的代码,而您不必重新加载页面。在 chromes 控制台中,您可以直接对页面执行 javascript,如果您执行已经存在的函数定义,则会被覆盖。我一直这样做是为了调试问题。

【讨论】:

  • 你一针见血。我一直在为永远不会消失的事情而苦苦挣扎,或者当你只期望一个人时,我会双打。我想我可以将它分成页面,但我讨厌页面重新加载。此外,还必须复制大量内容(例如非常大的动态侧边导航),这意味着额外的数据库调用和网络流量。
  • 并非所有事情都必须重新加载页面。但是,有些事情你可能想要制作新的页面。确实,当您实现一项功能时,请考虑一下天气,它应该是一个新页面,或者使用 ajax 和 javascript 是否会更好地完成。
最近更新 更多