一、项目背景与目标
本项目旨在实现一个可本地运行的知识问答系统,支持用户输入问题和答案,展示结果并保存数据到本地文件。系统要求使用HTML/CSS/JavaScript构建前端界面,并在本地环境中运行,无需依赖外部服务。通过本地存储,用户可以在浏览器中随时访问和修改知识内容,提升数据管理的便捷性。
二、核心技术要点
本项目所采用的核心编程要素包括:
1. 本地数据存储:使用localStorage保存用户输入和问答内容,确保数据持久性。
2. 前端交互逻辑:通过HTML/CSS/JavaScript实现用户输入、结果展示和数据保存功能。
3. 本地运行环境:通过浏览器本地服务器(如`http://localhost:8000/`)确保系统无需依赖远程服务。
三、代码实现
一、前端页面结构
<!DOCTYPE html>
<html>
<head>
<title>知识问答</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
}
#container {
display: flex;
flex-direction: column;
gap: 10px;
}
h2 {
text-align: center;
}
input, textarea {
width: 100%;
padding: 10px;
font-size: 16px;
}
button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
#result {
width: 100%;
height: max(100vh, 150px);
background: #f0f0f0;
padding: 10px;
}
</style>
</head>
<body>
<h2>知识问答系统</h2>
<div id="container">
<h2>输入问题</h2>
<input type="text" id="question" placeholder="请告诉我一个关于Python的有用特点" />
<br>
<h2>答案区域</h2>
<div id="answer" class="answer"></div>
<button onclick="saveData()">保存数据</button>
<h2>当前问题</h2>
<div id="currentQuestion"></div>
<h2>当前答案</h2>
<div id="currentAnswer"></div>
</div>
<script>
// 初始化数据
let questions = [
{ question: "请告诉我一个关于Python的有用特点", answer: "面向对象编程" }
];
// 保存数据
function saveData() {
let question = document.getElementById("question").value;
let answer = document.getElementById("answer").textContent;
let currentQuestion = document.getElementById("currentQuestion").textContent;
let currentAnswer = document.getElementById("currentAnswer").textContent;
localStorage.setItem("knowledge", JSON.stringify({ question, answer, currentQuestion, currentAnswer }));
}
// 获取当前数据
function getQuestion() {
return JSON.parse(localStorage.getItem("knowledge")).question;
}
// 显示结果
document.getElementById("currentQuestion").textContent = getQuestion();
document.getElementById("currentAnswer").textContent = localStorage.getItem("knowledge").answer;
</script>
</body>
</html>
四、总结
本项目通过前端HTML/CSS/JavaScript实现了一个可本地运行的知识问答系统,支持用户输入问题、选择答案并保存数据到本地文件。系统利用localStorage实现持久化存储,前端通过简单的交互逻辑展示结果,并在本地服务器上运行,无需依赖远程服务。该项目开发周期为1-2天,通过实现核心要素(如文件读写和本地存储)展示了Web开发的基础实践。
通过本项目的实现,用户能够便捷地管理知识内容,提升交互体验。