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

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

开发者学堂课程【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}

转义: # 的使用

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

相关文章
|
5月前
|
前端开发
html+css 实现产品小米产品展示效果(记得收藏)
html+css 实现产品小米产品展示效果(记得收藏)
|
JSON 缓存 NoSQL
Github上线就星标120k!这份阿里独有的高并发实战笔记首次曝光
总有些小伙伴问当下最火的热门技术是什么?
176 0
|
人工智能 网络协议
新必应(New Bing)申请出错终极方案
随着ChatGPT的爆火,微软推出了AI驱动的新必应(New Bing),新必应大大提升了Bing的体验和效率,一时间吸引力众多申请和试用。 然而很多想要加入新必应候补名单时,却总是报出错了,请重试。
4347 1
新必应(New Bing)申请出错终极方案
|
分布式计算 Hadoop Spark
【Spark3.0.0-体验】温习源码解析-->体验安装测试
【Spark3.0.0-体验】温习源码解析-->体验安装测试
221 0
【Spark3.0.0-体验】温习源码解析-->体验安装测试
|
前端开发 JavaScript Java
淘宝提示词案例| 学习笔记
快速学习淘宝提示词案例。
|
前端开发 JavaScript Java
百度提示词案例| 学习笔记
快速学习百度提示词案例。
|
JavaScript 测试技术
接口测试平台代码实现番外:主页改版-2
接口测试平台代码实现番外:主页改版-2
接口测试平台代码实现番外:主页改版-2
|
测试技术
接口测试平台代码实现番外:主页改版-7
接口测试平台代码实现番外:主页改版-7
接口测试平台代码实现番外:主页改版-7