前端实验6

1、设计词典布局(美观即可,不要求按设计图精确布局)

(1)创建网页,创建网页文件dict.html。

(2)网页布局

使用div+css按图1进行布局,风格为手机网页,文本框和下面内容区域宽度自适应,搜索按钮宽度固定,搜索栏固定到屏幕最上方。

 

图1 词典设计图

2、词典页面操作典事件编程

(1)相似词汇显示

当文本框发生改变时显示相似词汇,如图2所示。

 

实现方法:向接口getSimilarWords发起异步(AJAX)请求(参见《实验6_Web接口文档》第1节),服务器会返回响应,包含了相似词汇数据,将该数组中的词汇渲染到内容区域中(如图2所示),参考代码:

$.ajax({

url: "http://43.136.217.18:8081/getSimilarWords",

data: {word: "文本框中的字符"},

type: "GET",

datatype="json",

//访问成功,查看State

success: function(data){

//解析JSON

if(data.State == "SUC"){

…… //成功后,读取相似词汇,渲染到图2的列表

}

else{

…… //失败后,在图2的列表处显示失败信息

}

},

//访问失败

error: function(data){

….. //在图2的列表处显示“系统错误消息”

}

});

JSON解析方式:所有相似词汇放在data.Content中,参见《实验6_Web接口文档》第1.4节。

(2)查询词汇结果显示

点击图2中的“查词按钮”,按文本框中的词汇进行查询;点击图2中相似词汇列表中的项目,按列表项中的词汇进行查询;查询需要异步(AJAX)调用getWordDetail接口(参见《实验6_Web接口文档》第2节),查询结果按图3的显示效果填充。

 

图3 词汇查询结果

参考代码:

$.ajax({

url: "http://43.136.217.18:8081/getWordDetail",

data: {word: "文本框或列表项中的词汇"},

type: "GET",

datatype: "json",

//访问成功,查看State

success: function(data){

//解析JSON

if(data.State == "SUC"){

…… //成功后,读取相似词汇,渲染到图3的内容区域

}

else{

…… //失败后,在图3的内容区域处显示错误信息

}

},

//访问失败

error: function(data){

….. //在图3的内容区域处显示“系统错误消息”

}

});

JSON解析方式:词汇解释放在data.Content中,参见《实验6_Web接口文档》第2.4节;同一个词汇可能有多条解释,同一条解释可能有多组不同词性,同一组词性可能有多条释义,参见图3和《实验6_Web接口文档》第2.4节例2。

3、(选做)部署Tomcat服务器

(1)本实验直接使用实验5的服务器即可,所有服务端接口在实验5的server_release中已经存在。

(2)网页中使用的所有地址要采用相对地址,将地址的域名部分去掉,如:

将http://43.136.217.18:8081/getSimilarWords改为getSimilarWords

1、相似英文词汇

1.1 接口说明

接口功能

获取相似英文词汇

接口地址

getSimilarWords

请求方式

GET / POST

1.2 输入参数(Request

参数名

参数说明

参数检查逻辑

word

英文词汇或词汇片段

max

最多记录条数

可选,缺省为20

1.3 接口逻辑

接收词汇片段参数,加载词库,查询以该词汇片段开头的词汇,结果只返回前20个词汇,若未查询到词汇则返回空列表。若加载词库出错则返回“异常输出”。

1.4 成功输出(Response)

返回JSON数据:

 

1.5 异常输出(Response)

返回JSON数据:

 2 英文词汇解释

2.1 接口说明

接口功能

获取英文词汇解释

接口地址

getWordDetail

请求方式

GET / POST

2.2 输入参数(Request)

参数名

参数说明

参数检查逻辑

word

英文词汇

不能为空

2.3 接口逻辑

接收词汇,加载词库,查询该词汇的词性和中文释义,若未通过“参数检查”,加载词库出错或未查询到该词汇则返回“异常输出”。

2.4 成功输出(Response)

返回JSON数据:

 

 

2.5 异常输出(Response)

返回JSON数据:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>lzy202131060613lab6</title>
    <style>
        #search div:nth-child(1) input{
            float: left;
            margin-right: 10px;
            height: 30px;
            padding-left: 10px;
            font-size: 20px;
            border-color: black;
            border-width: 1px;
            width: auto;
        }
        #search div:nth-child(2) input{
            height: 34px;
            font-size: 20px;
            background-color: white;
            border-color: black;
            border-width: 1px;
            width: 200px;
        }
        #inform{
            width: 30%;
            height: 100%;
            border:solid 1px black;
            margin-top: 10px;
        }
    </style>
    <script src="js/jquery-3.1.1.min.js"></script>
    <script>
        $().ready(function(){
            $("#find").click(function(){
                var words = $("#word").val();
                $.ajax({
                    url: "http://43.136.217.18:8081/getWordDetail",
                    data: {word: words},
                    type: "GET",
                    datatype: "JSON",
                    success:function(res){
                        if(res.state=="SUC"){
                            var list = res.content;
                            var html="<ul>"+list[0].eng+"</ul>";
                            html+="<ul>";
                            for(var i=0;i<list.length;i++){
                                for(var j=0;j<list[i].trans.length;j++){
                                    for(var k=0;k<list[i].trans[j].pos.length;k++){
                                        html+="<li>"+list[i].trans[j].pos[k];
                                    }
                                    for(var l=0;l<list[i].trans[j].chn.length;l++){
                                        html+=list[i].trans[j].chn[l]+"&nbsp;";        
                                    }
                                    html+="</li>"
                                }
                            }
                            html+="</ul>";
                            $("#inform").html(html);
                        }else{
                            var html = "<ul>显示信息错误</ul>";
                            $("#inform").html(html);
                        }
                    },
                    error:function(data){
                        var html = "<ul style:'color:red'>系统错误</ul>";
                        $("#inform").html(html);
                    }
                })
            });
            $("#word").on("input",function(){
                $("imform").empty();
                $.ajax({
                    url:"http://43.136.217.18:8081/getSimilarWords",
                    data:{word:$("#word").val()},
                    type:"GET",
                    datatype:"JSON",
                    success:function(data){
                        if(data.state == "SUC"){
                            var list = data.content;
                            var html = "<ul>";
                            if(list.length>15){
                                for(var i=0;i<15;i++){
                                    html += "<li>"+list[i]+"</li>";
                                }
                            }else{
                                for(var i=0;i<list.length;i++){
                                    html += "<li>"+list[i]+"</li>";
                                }
                            }
                            html += "</ul>";
                            $("#inform").html(html);
                        }else{
                            var html = "<ul>显示信息错误</ul>";
                            $("#inform").html(html);
                        }
                    },
                    error:function(data){
                        var html = "<ul style:'color:red'>系统错误</ul>";
                        $("#inform").html(html);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <div id="search">
        <div><input id="word" type="text" placeholder="请输入英文词汇"></div>
        <div><input id="find" type="button" value="查词"></div>
    </div>
    <div id="inform"></div>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值