改造百度提示案例| 学习笔记

简介: 快速学习改造百度提示案例。

开发者学堂课程【Ajax 前端开发入门与实战改造百度提示案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8552


改造百度提示案例

 

目录:

一、模板引擎的本质

二、常见的模板引擎

 

无论是 Ajax 还是跨域,目的都是为了获取服务器的数据,获取数据之后将前端界面进行渲染。

如何渲染前端界面?

前端界面都是由标签构成的,所以前端界面的渲染主要做的就是生成 html 标签。

生成 html 标签通过拼接字符串的方式来实现。这种方式在标签结构比较复杂的情况之下很不好操作和后期的维护,并且容易出错。

所以有一种技术叫做模板引擎,通过模板引擎可以很方便的生成 html 标签。

 

一、模板引擎的本质

模板引擎的本质:将数据和模板结合起来生成 html 片段。所以模板引擎需要两个组成部分:模板和数据,通过数据,将模板指定的标签动态生成,方便维护。

获取相关提示案例之后,所需要做的就是生成一系列的 li 标签,将服务器当中的所获取的结果展示给用户看,所以就是要生成一系列的 li 标签。

最开始是使用的字符串拼接的方式生成一个又一个的 li 标签,然后将标签放在 ul 里面。(通过字符串拼接的方式也能够生成一系列的标签)

但是有一个缺点就是一旦复杂起来就会相对麻烦,在后期维护工作也会非常麻烦。所以就可以使用模板引擎。

<DCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script type="text javascript" src=" myutils. js"></script>

<script type="text javascript" src="jquery. js"></script>

<script type=" text/ javascript" >

window . onload = function(){

var btn = document . querySelector(" #btn" );

btn.onclick = function(){

varkeywordValue=document.querySelector("#keyword" ) .value;

console . log(keywordValue);

$.ajax({

url:"https://spØ.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su" ,

data : (wd:keywordValue],

success:function( data){

console. log(data);

},

var liTag = "";

for(var i-0;i<data.s. length;i+)f

var temp= data.s[i];

//liTag += "<li>"+temp+"</li>";

liTag+= "<li>div><span>#Æ"+i+" :</span><span>"+temp+"</span>/div></li>" I

var ulTag = document . querySelector("ul");

ulTag. innerHTML = liTag;

),

dataType:"jsonp" ,

jsonp: "cb"

]);

(就是用一些字符串拼接的方式)

测试:

输入 java

结果0: java 培训

结果1: java 教程

结果2: javascript

结果3: java 环境变量设置

结果4: java api 1.7 中文

结果5: javaee

结果6: java8

结果7: java map

结果8: jav a 编程思想

结果9: javascript 教程

就有相应数据的输出。

前端结构进行变化

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

<li>4</li>

<li>5</li>

</ul>

将结构进行变化一下:所以将不会是 li 标签

<li>

<div>

<span>结果1:</span>(这个span用来描述信息)

<span>1:</span>(这个span展示的是服务器相关的数据)

</div>

</li>

<li>

<div>

<span>结果1:</span>(这个span用来描述信息)

<span>1:</span>(这个span展示的是服务器相关的数据)

</div>

</li>

<li>

<div>

<span>结果1:</span>(这个span用来描述信息)

<span>1:</span>(这个span展示的是服务器相关的数据)

</div>

</li>

<li>

<div>

<span>结果1:</span>(这个span用来描述信息)

<span>1:</span>(这个span展示的是服务器相关的数据)

</div>

</li>

<li>

<div>

<span>结果1:</span>(这个span用来描述信息)

<span>1:</span>(这个span展示的是服务器相关的数据)

</div>

</li>

具体展示为:

结果1:1

结果1:1

结果1:1

结果1:1

结果1:1

获取到服务器数据后,就要生成一系列这种结构的li标签。

 

二、常见的模板引擎

常见的模板引擎有很多,例如一个效率最高的模板引擎 artTenplate ,这是腾讯公司出品的开源的模板引擎,在 github 上可以下载到源代码。以下是 artTenplate 的具体使用。 

使用步骤如下:

1、引入 js 文件

<script type=" text/ javascript" src=" template. Js”></script>

2、定义模板

<!-- 1. 模板的 type-text/html 2.给模板配一个 id  data.s-->

<script type=" text/html" id=" resultTemplate">

{{each s as value i}}

<li>

<div>

<span>结果{{i}}:</span>

< span>{{value}}</span>

</div>

</li>

{{/each]]

</script>

//template方法的含义就是将数据和模板结合起来,生成html片段

var html = template("resultTemplate" ,data);

console . log(html);

//var liTag = "";

//for(var i=0; i<data.s. length;i++){

//var temp = data.s[i] ];

//liTag += "<li>"+temp+"</li>" ;

//liTag+="<li><div><span>

结果+i+" :</span><span>"+temp+"</span></div></li>"

// var ulTag = document . querySe lector( "ul" ) ;

// ulTag. innerHTML = liTag

//var ulTag= document . querySelector("ul");

//ulTag IinnerHTML = liTag;

3、将数据和模板结合起来生成 html 片段

4、将 html 片段渲染到界面中

基本语法:

得到数据中的值 {{value}}

循环操作{{each result as value i }} {/eachl}

转义: # 的使用

这种方式比较方便,拥有层次结构,也方便后期的维护。

相关文章
|
6月前
|
Java 数据安全/隐私保护 Spring
Spring案例:百度网盘密码数据兼容处理
Spring案例:百度网盘密码数据兼容处理
72 0
|
数据可视化 搜索推荐 JavaScript
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
数据可视化大屏百度地图区域掩膜MapMask实现地图指定区域非省市县行政区显示的实战案例解析(JavaScript API GL、个性化地图定制、指定区域经纬度拾取转化)
939 0
|
3月前
|
数据采集 存储 自然语言处理
【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现
本文介绍了百度贴吧数据采集与文本分析的设计与实现,包括自动化采集帖子数据、进行情感分析和主题分析,以及使用可视化技术展示分析结果。
|
JavaScript 前端开发 API
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
python对接API二次开发高级实战案例解析:百度地图Web服务API封装函数(行政区划区域检索、地理编码、国内天气查询、IP定位、坐标转换)
446 0
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
205 0
|
数据可视化 前端开发 搜索推荐
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
数据可视化大屏百度地图GPS轨迹位置感知状态开发实战案例解析(百度地图jsAPI,包含缩放控件、点线覆盖物、弹窗、标注图标分类功能)
290 0
|
11月前
|
定位技术 API
百度地图API的使用教程以及案例(二)
百度地图API的使用教程以及案例
|
11月前
|
定位技术 API 容器
百度地图API的使用教程以及案例(一)
百度地图API的使用教程以及案例
|
搜索推荐 数据可视化 JavaScript
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
数据可视化大屏百度地图绘制行政区域标注实战案例解析(个性化地图、标注、视频、控件、定位、检索)
214 1
|
编解码 监控 数据可视化
数据可视化大屏应急管理综合指挥调度系统完整案例详解(PHP-API、Echarts、百度地图)
数据可视化大屏应急管理综合指挥调度系统完整案例详解(PHP-API、Echarts、百度地图)
313 0
下一篇
无影云桌面