当前位置: 首页 > news >正文

我的博客的开发过程

开发过程development process一、项目概述这是一个基于Web技术的个人博客系统采用纯前端开发模式无需后端服务器支持。所有数据均存储在浏览器的localStorage中实现了用户注册、登录、文章发布、文章列表展示、文章详情查看和个人信息管理等功能。整个系统包含6个HTML页面1个CSS样式文件和1个JavaScript脚本文件。二、系统架构1. 技术选型HTML5负责页面结构构建使用语义化标签提升可读性CSS3负责页面样式设计采用Flexbox布局实现响应式效果JavaScript负责页面交互逻辑和数据处理localStorage浏览器本地存储实现数据持久化2. 目录结构d:\bolg/ ├── index.html # 登录页面 ├── register.html # 注册页面 ├── articleList.html # 文章列表页面含轮播图 ├── addArticle.html # 创作文章页面 ├── personalInfo.html # 个人信息页面 ├── articleDetail.html # 文章详情页面 ├── development.html # 开发过程文档页面 ├── css/ │ └── style.css # 共享样式文件 ├── js/ │ └── script.js # JavaScript核心逻辑 └── img/ ├── main.jpg # 登录/注册/个人信息页面的装饰图片 ├── lbt1.jpg # 轮播图第1张 ├── lbt2.jpg # 轮播图第2张 ├── lbt3.jpg # 轮播图第3张 └── lbt4.jpg # 轮播图第4张三、数据库设计1. localStorage存储结构本系统使用浏览器的localStorage API进行数据持久化共定义了三个存储键blog_users存储所有注册用户的信息类型为JSON数组blog_articles存储所有发布的文章类型为JSON数组blog_current_user存储当前登录用户的信息类型为JSON对象2. 用户数据结构{ studentId: String, // 学号唯一标识 name: String, // 姓名 className: String, // 班级 password: String, // 密码 gender: String, // 性别默认为男 createdAt: String // 注册时间 }3. 文章数据结构{ id: Number, // 文章ID使用时间戳生成 title: String, // 文章标题 content: String, // 文章内容 author: String, // 作者姓名 authorId: String, // 作者学号 createdAt: String // 创建时间 }四、核心功能实现1. 用户注册功能注册功能位于register.html页面主要流程如下用户填写学号、姓名、班级、密码、确认密码等表单信息前端JavaScript验证所有字段是否已填写验证两次输入的密码是否一致调用registerUser函数检查学号是否已被注册如果学号未注册将用户信息添加到users数组中保存更新后的users数组到localStorage显示注册成功提示1.5秒后自动跳转到登录页面核心逻辑代码function registerUser(userData) { const users getUsers(); const existingUser users.find(u u.studentId userData.studentId); if (existingUser) { return { success: false, message: 该学号已被注册 }; } users.push(userData); saveUsers(users); return { success: true, message: 注册成功 }; }2. 用户登录功能登录功能位于index.html页面主要流程如下用户输入学号和密码前端JavaScript验证学号和密码是否已填写调用loginUser函数在users数组中查找匹配的用户如果找到匹配的用户学号和密码都正确保存用户信息到current_user登录成功跳转到文章列表页面如果登录失败显示错误提示信息核心逻辑代码function loginUser(studentId, password) { const users getUsers(); const user users.find(u u.studentId studentId u.password password); if (user) { setCurrentUser(user); return { success: true, message: 登录成功 }; } return { success: false, message: 学号或密码错误 }; }3. 文章发布功能写文章功能位于addArticle.html页面主要流程如下用户填写文章标题和文章内容前端JavaScript验证标题和内容是否已填写获取当前登录用户信息作为文章的作者如果用户未登录提示请先登录并跳转到登录页面调用addArticle函数创建新的文章对象生成唯一的文章ID使用Date.now()时间戳将新文章添加到articles数组的开头位置保存更新后的articles数组到localStorage显示发布成功提示1.5秒后自动跳转到文章列表页面核心逻辑代码function addArticle(articleData) { const articles getArticles(); const newArticle { id: Date.now(), ...articleData, createdAt: new Date().toLocaleString(zh-CN) }; articles.push(newArticle); saveArticles(articles); return newArticle; }4. 文章列表展示文章列表功能位于articleList.html页面主要流程如下页面加载时调用initMockData函数初始化测试数据调用renderArticles函数从localStorage读取所有文章遍历文章数组生成文章卡片HTML结构每张卡片显示文章标题和作者信息点击卡片时调用goToDetail函数跳转到文章详情页面并传递文章ID参数页面包含轮播图功能自动轮播展示4张图片页面左侧包含统计信息侧边栏显示文章总数文章数量统计功能在renderArticles函数中获取文章列表后同时更新页面左侧侧边栏的文章总数统计使用document.getElementById获取统计元素并更新其内容。侧边栏样式采用与系统统一的暖橙色主题包含统计标题和文章数量显示文章数量使用较大字体突出显示。5. 文章详情查看文章详情功能位于articleDetail.html页面主要流程如下页面加载时从URL参数中获取文章ID调用getArticleById函数根据ID查找文章如果找到文章显示文章标题、作者和内容如果未找到文章显示文章不存在的提示信息提供返回文章列表链接核心逻辑代码function getArticleById(id) { const articles getArticles(); return articles.find(a a.id parseInt(id)); } // 页面加载时执行 const urlParams new URLSearchParams(window.location.search); const id urlParams.get(id); if (id) { const article getArticleById(id); if (article) { document.getElementById(articleTitle).textContent article.title; document.getElementById(articleAuthor).textContent 作者: article.author; document.getElementById(articleContent).textContent article.content; } }6. 个人信息管理个人信息功能位于personalInfo.html页面主要流程如下页面加载时调用loadUserInfo函数从localStorage获取当前登录用户信息显示用户的学号、姓名、班级等信息性别可以通过下拉框进行修改点击刷新信息按钮调用updateUserInfo函数保存修改点击退出登录按钮清除当前用户信息并跳转到登录页面核心逻辑代码function updateUserInfo(userData) { const users getUsers(); const index users.findIndex(u u.studentId userData.studentId); if (index ! -1) { users[index] { ...users[index], ...userData }; saveUsers(users); setCurrentUser(users[index]); return { success: true, message: 信息更新成功 }; } return { success: false, message: 用户不存在 }; } function logout() { localStorage.removeItem(STORAGE_KEY_CURRENT_USER); }五、页面跳转关系系统的页面跳转关系如下登录页面→ 注册页面用户点击去注册链接登录页面→ 文章列表页面登录成功后自动跳转注册页面→ 登录页面注册成功后自动跳转文章列表页面→ 写文章页面用户点击导航栏去写文章链接文章列表页面→ 文章详情页面用户点击文章卡片写文章页面→ 文章列表页面发布文章成功后自动跳转文章详情页面→ 文章列表页面用户点击返回文章列表链接个人信息页面→ 登录页面用户点击退出登录按钮六、测试数据说明为了方便测试和演示系统初始化时会自动创建测试数据1. 测试用户学号: 25软件技术2班 密码: 123456 姓名: 李四 学号: 111 密码: 111 姓名: 111 学号: 3333333 密码: 333 姓名: 3333333 学号: 1111 密码: 111 姓名: 1112. 测试文章标题: 月落乌啼 内容: 月落乌啼霜满天江枫渔火对愁眠。姑苏城外寒山寺夜半钟声到客船。 作者: 李四 标题: 长白山的愤怒 内容: 长白山位于中国东北地区是一座著名的火山。山上风景秀丽冬季白雪皑皑夏季绿树成荫。 作者: 李五七、样式设计说明1. 主题色彩整个博客系统采用暖橙色作为主色调营造温馨、舒适的阅读氛围页面背景色#FAF0E6淡米色导航栏背景色#C47451暖橙色表单盒子背景色#F5DEB3小麦色按钮颜色#FFA500橙色悬停时变为#FF8C00深橙色文章卡片颜色#C47451暖橙色链接文字颜色#FFA500橙色2. 布局设计页面采用响应式布局设计兼容不同屏幕尺寸的设备登录/注册/个人信息页面采用Flexbox左右布局左侧为装饰图片右侧为表单内容文章列表页面上方为轮播图下方为文章卡片网格布局轮播图固定高度400px支持自动轮播和手动切换文章卡片网格布局每行显示2个卡片在小屏幕上自动堆叠为单列3. 交互效果按钮悬停效果鼠标悬停时背景色加深提升用户反馈感表单输入框适当的内边距和圆角设计提高输入舒适度错误提示红色文字显示错误信息绿色文字显示成功信息轮播图切换支持左右箭头、指示器和自动轮播三种切换方式
http://www.zskr.cn/news/1395098.html

相关文章:

  • 矿难应急搜救场景:无感定位精准回溯,UWB无法支撑灾后定位
  • Buzz终极指南:完全离线的智能语音转录与翻译工具
  • easybr指纹浏览器:轻量高效的环境隔离解决方案
  • 2026年上半年烟台财产分割律师排行:5位专业律师实力对比 - 奔跑123
  • 告别手动调参:用argparse与Shell脚本实现深度学习自动化“炼丹”
  • 26-cv-2721、26-cv-3253、26-cv-4061MILWAUKEE TOOL 美沃奇工具巨头商标连续发案再度来袭!注意排查!
  • 使用Taotoken CLI工具快速为团队统一开发环境配置模型密钥
  • SpringBoot2 集成 xxl-job:从基础配置到动态参数解析实战
  • 手把手教你用察元AI文档助手揪出文章的“AI塑料味”,AI痕迹检查助手的使用
  • 高危矿井技术大洗牌,无感定位相比UWB拥有哪些碾压级优势?
  • 工业软件多厂商交付时,共享加密狗到底解决什么问题?
  • 26-cv-2040、26-cv-710、26-cv-3496、26-cv-925 NARUTO 火影忍者日本动画巨头东京电视台!NARUTO商标注册09/16/25/28/41大类
  • 3. 烯烃聚合反应机理与动力学_2026-05-05_08-28-17
  • 用ModelSim/iverilog跑一遍HDLbits仿真题:从Testbench编写到波形调试的完整实战
  • 从“页面未找到”到精准定位:URL、服务器与错误排查实战指南
  • 基于BiLSTM-BiGRU混合网络的蛋白质二级结构预测模型详解
  • 企业统计数据用哪个?Excel 共享表格 vs 接龙管家,6 大维度看谁更适合职场
  • OpenAI Codex新增“锁屏运行”功能,可远程操控Mac应用程序但引安全担忧
  • FGW50N65WE:富士电机高速W系列IGBT,650V/50A,内置续流二极管,TO-247封装
  • 哔咔漫画下载器完整指南:3步打造个人离线漫画图书馆
  • 如何高效管理Windows窗口:免费窗口调整工具完全指南
  • 基于WGAN-GP的合成心震图生成:突破心血管监测数据瓶颈
  • 4.2%复合增速支撑!2025年全球电缆阻水带市场规模大约为2.73亿美元
  • 开发AI智能客服时如何通过Taotoken灵活切换与降级模型
  • 2026年4月伞齿轮生产推荐,涡轮闸阀/涡轮蝶阀/涡轮/伞齿轮球阀/伞齿轮角阀/涡轮截止阀,伞齿轮生产口碑推荐 - 品牌推荐师
  • 明日方舟游戏资源库:5大技术优势解析与完整应用指南
  • 哈希家族的葫芦娃七兄弟
  • 7.2 AD单通道
  • 【AI工具2026权威榜单】:基于37项硬指标、127家厂商实测数据的年度终极排名(附避坑指南)
  • FPGA多模式SHA-2硬件加速器设计:从架构到29倍GPU能效的工程实践