项目实战:构建一个Web应用(下篇)

简介: 项目实战:构建一个Web应用(下篇)

## 6. 优化前端

为了使我们的Web应用更加易用,我们可以对前端代码进行一些优化。

### 6.1 添加加载动画

当我们向后端服务器发起请求时,为了提高用户体验,我们可以在页面中显示一个加载动画。首先,在`index.html`文件中添加一个加载动画容器:

<div class="mt-4">
    <h3 class="mb-3">Todo List</h3>
    <div class="text-center" id="loading">
        <div class="spinner-border text-primary" role="status">
            <span class="sr-only">Loading...</span>
        </div>
    </div>
    <ul class="list-group" id="todo-list">
        <!-- 在这里显示待办事项 -->
    </ul>
</div>

接下来,在`style.css`文件中添加以下CSS样式:

#loading {
    display: none;
}

最后,在`script.js`文件中添加以下代码以显示和隐藏加载动画:

function showLoading() {
  $("#loading").show();
}
function hideLoading() {
  $("#loading").hide();
}
// 在发起请求前显示加载动画
showLoading();
// 在请求完成后隐藏加载动画
$.get("/api/todos", function (data) {
  // ...
  hideLoading();
});
// 在其他请求中也添加相应的显示和隐藏加载动画逻辑

### 6.2 错误处理

当我们的Web应用与后端服务器进行交互时,可能会发生错误(例如,网络问题、服务器错误等)。为了提高用户体验,我们应该处理这些错误并向用户显示相应的错误信息。首先,在`index.html`文件中添加一个错误消息容器:

<div class="mt-4">
    <h3 class="mb-3">Todo List</h3>
    <div class="alert alert-danger" role="alert" id="error-message" style="display: none;">
        An error occurred. Please try again.
    </div>
    <!-- 其他代码 -->
</div>

接下来,在`script.js`文件中添加以下代码以显示和隐藏错误消息:

function showError() {
  $("#error-message").show();
}
function hideError() {
  $("#error-message").hide();
}
// 在请求发生错误时显示错误消息
$.get("/api/todos", function (data) {
  // ...
}).fail(function () {
  showError();
});
// 在其他请求中也添加相应的错误处理逻辑

## 7. 部署应用

现在我们已经完成了Web应用的开发,下一步是将其部署到互联网上,以便其他人可以访问。在本节中,我们将介绍如何使用Heroku将应用部署到互联网上。

### 7.1 创建Heroku账户

首先,访问[Heroku官网](https://www.heroku.com/)并注册一个免费账户。然后,安装[Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli)并通过命令行(终端)登录到Heroku:

heroku login

### 7.2 准备应用

在部署应用之前,我们需要对其进行一些修改以使其适应Heroku的环境。首先,在`server.js`文件中添加以下代码以使用Heroku提供的环境变量:

const PORT = process.env.PORT || 3000;

接下来,创建一个名为`Procfile`(没有文件扩展名)的文件,其中包含以下内容:

web: node server.js

最后,在项目根目录下创建一个名为`.gitignore`的文件,其中包含以下内容:

node_modules/

这将防止`node_modules`文件夹被推送到Heroku,从而减少部署时间并避免不必要的文件传输。

### 7.3 部署应用

现在我们准备好部署应用了。首先,在项目根目录下运行以下命令以初始化Git仓库:

git init

接下来,将所有文件添加到Git仓库并提交:

git add .
git commit -m "Initial commit"

然后,使用Heroku CLI创建一个新的Heroku应用:

heroku create

最后,将代码推送到Heroku:

git push heroku master

部署完成后,你将看到一个类似于以下的URL:

https://your-app-name.herokuapp.com/

访问此URL,你将看到已部署的待办事项Web应用。现在,你可以将此URL分享给其他人让他们访问你的应用了!

## 8. 总结

在本篇文章中,我们完成了待办事项Web应用的开发,并将其部署到了互联网上。我们优化了前端页面,增加了加载动画和错误处理,提高了用户体验。同时,我们通过Heroku将应用部署到了互联网上,使其他人也可以访问。

目录
相关文章
|
8月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
1039 0
|
8月前
|
前端开发 JavaScript 开发者
JavaScript:构建动态Web的核心力量
JavaScript:构建动态Web的核心力量
|
前端开发 算法 API
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
|
9月前
|
前端开发 Java 数据库
Java 项目实战从入门到精通 :Java Web 在线商城项目开发指南
本文介绍了一个基于Java Web的在线商城项目,涵盖技术方案与应用实例。项目采用Spring、Spring MVC和MyBatis框架,结合MySQL数据库,实现商品展示、购物车、用户注册登录等核心功能。通过Spring Boot快速搭建项目结构,使用JPA进行数据持久化,并通过Thymeleaf模板展示页面。项目结构清晰,适合Java Web初学者学习与拓展。
584 1
|
11月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
11月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
389 1
|
12月前
|
缓存 前端开发 应用服务中间件
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
473 7
|
数据可视化 图形学 UED
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
从模型托管到交互开发:DataV 如何简化三维 Web 应用构建?
358 2
|
Web App开发 JavaScript 前端开发
《单页Web应用:JavaScript从前端到后端》——1.3 精心编写的单页应用的用户效益
所有这些好处意味着,你可能会想把下个应用做成单页应用。每次点击后都会重新渲染整张页面的笨拙网站,容易日益疏远富有经验的用户。精心编写的单页应用具有互动和快速响应的界面,还伴有访问网络的功能,这将帮助我们把客户留在属于他们的地方:使用我们的产品。
1309 0