TODO App
前言
在移动应用和web应用两种开发方面,后端人员往往有着深厚的开发经验,但在前端领域,则往往感到相对地繁琐。这时候,开放性的框架就显得尤为重要。在AJAX(异步javascript和xml)的前提下,我们可以借助各种框架的封装,为前端开发带来更多的便利。因此,这篇文章将为您介绍AJAX开发APP的原理及详细介绍,以及实现的简单示例。
正文
1. 什么是AJAX?
AJAX是异步javascript和xml的简称,是一种创建快速动态网页的技术(不需要从服务器上获取完整的网页即可更新某些部分,可以改善网络应用的性能)。它结合了几项已有的技术,包括HTML、CSS、DOM、XML、XSLT、和JavaScript。使用AJAX,我们可以在不刷新页面的情况下从服务器更新网页的部分内容。
2. AJAX开发APP的原理
1). 用户操作web app的页面时,首先一个事件触发。
2). 使用javascript发起一个AJAX请求。
3). AJAX请求发送至服务器,服务器收到请求后处理,将结果返回给请求的javascript。
4). javascript解析从服务器返回的结果,更新web application页面上的内容。
以上原理,是整个AJAX的基础。可以看出,AJAX开发APP的本质,就是利用javascript来发起请求,利用后台服务器返回的信息来更新页面的内容。当然,其中,需要依靠各种框架的封装来实现NJ部分的功能。
3. 实现AJAX开发APP的框架之一——jQuery Mobile
jQuery Mobile(JQM)是一个基于HTML5的用户界面系统的开源框架,适用于开发跨平台的移动应用。这个框架建立在jQuery和jQuery UI的基础之上,在HTML5和CSS3的基础上提供了可用于快速构建Web应用程序、极其灵活的API。
jQuery Mobile 允许开发人员根据唯一的设备类型 - 手机、平板电脑、台式机或笔记本电脑 - 创建一个唯一的用户界面,这使得你不必写两个应用程序,一种为PC用,一种为移动用。
同时,这个框架也提供了丰富的组件库和样式库,可供自己使用:

针对这个框架,我们可以进行简单的实现。我们在这里以制作一个简单的“TODO” App为例:
```html
$(document).on("pagebeforeshow", "#main-page", function() {
//jquery ajax实现简单的增删功能
$.ajax({
url: "data.php",
type: "POST",
dataType: "json",
success: function(data) {
$('#task-list').empty();
$.each(data, function(index, element) {
$('#task-list').append('
});
$('#task-list').listview('refresh');
}
});
});
```
除了这个html文件,我们还需要写一个用PHP语言来处理请求的简单脚本data.php:
```php
$host = 'localhost';
$user = 'root';
$pass = 'password';
$db_name = 'todo';
$conn = mysqli_connect($host, $user, $pass, $db_name);
if (mysqli_connect_errno()) {
exit('Failed to connect to MySQL: ' . mysqli_connect_error());
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'));
$task_name = $data->task_name;
$task_date = date('Y-m-d h:i:00', strtotime($data->task_date . ' ' . $data->task_time));
$added_date = date('Y-m-d H:i:s');
$sql = "INSERT INTO tasks (task, deadline, added) VALUES ('$task_name', '$task_date', '$added_date')";
$query = mysqli_query($conn, $sql);
if ($query) {
echo json_encode(array('status' => 'success'));
}
} else {
$sql = "SELECT * FROM tasks ORDER BY added DESC";
$query = mysqli_query($conn, $sql);
if ($query) {
$result = array();
while($task = mysqli_fetch_assoc($query)) {
array_push($result, $task);
}
echo json_encode($result);
}
}
?>
```
这个脚本,主要是用于执行我们在JQM中调用的AJAX操作,以实现增删查改的操作。
由此,整个APP功能基本实现。当然,如果我们想要更加实用化,还可以进行以下的改进:
- 增加删除任务和标记任务是否已完成的功能。
- 增加日期和时间的更好的样式和交互式的日历和时钟控件。
- 增加搜索,排序和筛选任务的功能。
最后,整个APP的效果是这样的:

结语
AJAX开发APP,其实主要就是建立在AJAX技术、前端框架和后端脚本语言的基础之上,通过页面上的一些动态异步请求来实现数据的增删查改。在本文中,我们主要是介绍了AJAX开发APP的原理及实现步骤,希望能对初学者提供一些帮助。