Web开发相关笔记 #02#
【1】
HTML 插入第三方。
【2】

【3】
JavaScript 回调函数 & 模块化 --> 用变量封装数据、方法 --> 类比 Java 中的 package
var fetchLive = function(callback) {
$.ajax({
url: "live/list.do",
method: 'GET',
success: function (data) {
callback(data);
}
});
};
var liveDisplay = {
homepage: function(data) {
console.log(data);
var liveName = $('.telecast-title');
var liveStatus = $('.live-status');
var liveTime = $('.telecast-time');
var liveHref = $('.live-href');
const DISPLAY_NUM = (data.length < 4 ? data.length : 4);
for (var i = 0; i != DISPLAY_NUM; ++i) {
$(liveName[i]).text(data[i].name);
$(liveStatus[i]).text(data[i].status);
$(liveTime[i]).text(data[i].lastTime);
liveHref[i].href = data[i].link;
}
}
};
$(function () {
fetchLive(liveDisplay.homepage);
});
示例 02:
/**
* 分类展示课程
*/ const BASE_URL = "course/listbyid.do?categoryID="; var fetchCourseById = function(id, callback) {
$.ajax({
url: BASE_URL + id,
method: 'GET',
success: function (data) {
callback(data);
}
});
}; var displayCourse = {
frameA: function(courses) { // 首页页面展示1
var courseName = $('.recommended-course-name');
var courseNum = $('.recommended-course-number');
var coursePic = $('.recommended-course-picture'); const DISPLAY_NUM = (courses.length < 6 ? courses.length : 6);
for (var i = 0; i != DISPLAY_NUM; ++i) {
$(courseName[i]).text(courses[i].title);
$(courseNum[i]).text(courses[i].lessonNum);
coursePic[i].src = courses[i].picture;
}
}, frameB: function(courses) { // 首页页面展示2
var courseName = $('.free-course-name');
var courseNum = $('.free-course-lessionNum');
var coursePic = $('.free-course-logo');
var courseHref = $('.btn-study'); const DISPLAY_NUM = (courses.length < 8 ? courses.length : 8);
for (var i = 0; i != DISPLAY_NUM; ++i) {
$(courseName[i]).text(courses[i].title);
$(courseNum[i]).text(courses[i].lessonNum);
coursePic[i].src = courses[i].picture;
courseHref[i].href = 'toPcLivePlay.do?source=' + courses[i].rtmp;
}
}
} $(function () {
fetchCourseById(2, displayCourse.frameA);
fetchCourseById(1, displayCourse.frameB);
});
【4】
distpicker,不要遗漏
trigger
/*
* per-set
* 展示、修改用户信息。
* */
var getSexVal = function() {
var temp =$(".sex");
for (var i = 0; i != 3; ++i) {
if (temp[i].checked) return i;
}
return 0;
}; var lastTotalVal;
var getTotalVal = function() {
var temp = $("#user-val1").val()
+ $("#user-val2").val()
+ $("#user-val3").val()
+ $("#user-val4").val()
+ $("#user-val5").val()
+ $("#user-val6").val();
return temp;
} function verifyEmail(str) {
var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
return reg.test(str);
} function verifyPhone(str) {
var reg = /^(\+86)|(86)?1[3,5,8]{1}[0-9]{1}[0-9]{8}$/;
return reg.test(str);
} var checkFormat_message = "";
var checkFormat = function() {
// 是否改变
currentTotalVal = getTotalVal();
if (currentTotalVal === lastTotalVal) {
checkFormat_message = "您还没有修改信息!";
return false;
}
// 非空
if ($("#user-val1").val() === "" || $("#user-val1").val() === null) {
checkFormat_message = "昵称不能为空";
return false;
}
// 邮箱格式
if (!verifyEmail($("#user-val5").val())) {
checkFormat_message = "邮箱格式错误";
return false;
}
// 手机号码格式
if (!verifyPhone($("#user-val4").val())) {
checkFormat_message = "手机号格式错误";
return false;
}
lastTotalVal = currentTotalVal;
return true;
}; var userProfile = {
display: function() {
$.ajax({
url: 'user/userProfile.do',
method: 'GET',
success: function (data) {
$($('.sex')[data.sex]).attr('checked', true);
$("#user-val2").val(data.province);
$("#user-val2").trigger('change');
$("#user-val3").val(data.city);
$("#user-val3").trigger('change');
$("#user-val6").val(data.country);
$("#user-val6").trigger('change');
}
});
},
saveProfile: function() {
if (!checkFormat()) {
alert(checkFormat_message);
return false;
};
$.ajax({
url: 'user/saveProfile.do',
method: 'GET',
data: {
username: $("#user-val1").val(),
sex: getSexVal(),
province: $("#user-val2").val(),
city: $("#user-val3").val(),
country: $("#user-val6").val(),
phone: $("#user-val4").val(),
email: $("#user-val5").val(),
},
success: function (data) {
if(data.status == 200)
alert('保存成功');
else
alert('保存失败');
}
});
},
}; $(function () {
userProfile.display();
$('#btnSaveProfile').click(userProfile.saveProfile);
lastTotalVal = getTotalVal();
});
Web开发相关笔记 #02#的更多相关文章
- Web开发相关笔记 #04# WebSocket
本文的主要内容: HTTP VS. WebSocket WebSocket 的客户端实现(JavaScript) WebSocket 的服务端实现(Java & apache WebSocke ...
- Web开发相关笔记 #03#
HTTP Status 500 ※ jsp 放在 WEB-INF 外面 ※ 使用 JDBC 时需要 close 什么 ※ execute 和 executeUpdate ※ How can I ...
- Web开发相关笔记 #01#
前端学习纲要 ※jQuery 参考 ※ 整理 Chrome 收藏夹的小技巧 ※ 解决 AJAX 跨域获取 cookie ※ 记一次 MyBatis 相关的 debug [1] 前端学习纲要: ♦ 第一 ...
- Web开发相关笔记 #05# MySQL中文无法匹配
2018-06-02 在 Class.forName 的时候记得先尝试 import 一下. 2018-06-04 1.JDBC SELECT 查询,中文条件查不出东西,可能是字符编码问题: Stri ...
- Web开发相关笔记
1.MySQL命令行下执行.sql脚本详解http://database.51cto.com/art/201107/277687.htm 在可视化工具里导出.sql脚本 --> 放命令行里运行 ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- Django Web开发指南笔记
Django Web开发指南笔记 语句VS表达式 python代码由表达式和语句组成,由解释器负责执行. 主要区别:表达式是一个值,它的结果一定是一个python对象:如:12,1+2,int('12 ...
随机推荐
- CS无线电语
[Radio Commands (" Z "键) - 无线电指令] 1."Cover me" (掩护我) 2."You Take The Point& ...
- 160607、springmvc+spring使用taskExecutor
第一步:导入spring core的jar+springmvc的jar 第二步:springmvc的配置文件中 <bean id="taskExecutor" class=& ...
- Java中分页功能源码实例
一.源码(后附使用说明) package com.zhiyou100.crm.util; /** * 分页功能 * @author YangXianSheng * */ public class Pa ...
- SAS9.4安装
安装教程请查看博客https://blog.csdn.net/qq_38960682/article/details/80567686 启动SAS时就报下面的错了:WARNING: 连接逻辑库“SAS ...
- Tips-Windows 10【多桌面视窗】操作
Windows 10[多桌面视窗] 当你点击任务栏上的“task view”按键时,会在屏幕中间显示你当前正在使用的桌面,你可以点击“添加桌面”来创建一个新的桌面,在这个新的桌面你可以打开其他的应用程 ...
- java 程序命名规则
程序命名规则提示:模块设计人员确定本软件的模块命名规则(例如类.函数.变量等),确保模块设计文档的风格与代码的风格保持一致.可以从机构的编程规范中摘取或引用(如果存在的话).命名规则1.包命名 ...
- Android 中各种权限深入体验及详解
Android 中各种权限深入体验及详解 分类: Android2012-07-15 19:27 2822人阅读 评论(0) 收藏 举报 androidpermissionsinstallersyst ...
- Design and Architectural Goals
w动态实例化-轻量级,组件间依赖程度.专一性-复用性.灵活性. https://www.codeigniter.com/userguide3/overview/goals.html http://co ...
- 基于HTTP协议的轻量级开源简单队列服务:HTTPSQS 笔记
队列服务就是为了提高相应速度,把耗时或者不需要即时处理的流程放到异步处理过程中,HTTPSQS就是这样一个服务. 更详细的可以参考 http://blog.s135.com/httpsqs/,这里记录 ...
- nsq里面WaitGroups两种实用的用法
看过好几遍了,觉得挺实用的,记录备忘一下. 1.开启很多个 goroutine 之后,等待执行完毕 type WaitGroupWrapper struct { sync.WaitGroup } fu ...