基于jquery实现ajax无刷新评论


Posted in Javascript onAugust 19, 2020

jquery实现ajax无刷新评论需要用的技术:(本次试验用的是“jquery-1.4.2.js”版本的jquery)

$.post("一般处理程序路径",{以字典的形式传递参数},function(data,status){``````});
jquery中的基本选择器操作;

首先创建数据库“T_article”:

主键设置自增;

基于jquery实现ajax无刷新评论

然后创建一个强类型的DataSet。

接着创建一个“无刷新评论.aspx”页面:

页面代码如下:

<div>
  <h2>文章:</h2>
  <p>this a text!this a text!this a text!this a text!this a text!this a text!this a text!this a text!
  this a text!this a text!this a text!this a text!this a text!this a text!this a text!this a text!this a text!
  this a text!this a text!this a text!this a text!this a text!this a text!</p>
  <ul id="pinglunlist">
  </ul>
 </div>
 <textarea id="msg" style="margin-left:20px;" cols="40" rows="10"></textarea>
 <input id="btnpinglun" type="button"
  value="评论" />

然后创建两个一般处理程序WSXPL.ashx(用来插入数据的处理程序)和WSXPL1.ashx(用来获取所有评论数据的处理程序);

WSXPL.ashx中的代码如下:

public void ProcessRequest(HttpContext context)
  {
   context.Response.ContentType = "text/plain";
   string msg = context.Request["msg"];
   new T_articleTableAdapter().Insert(context.Request.UserHostAddress, msg, DateTime.Now); //创建一个强类型的实例,然后调用Insert()函数插入;
   context.Response.Write("ok");
  }

WSXPL1.ashx中的代码如下:

public void ProcessRequest(HttpContext context)
  {
   context.Response.ContentType = "text/plain";
   var datas = new T_articleTableAdapter().GetData(); //返回的是一个DataTable
   StringBuilder sb = new StringBuilder(); //创建StringBuilder更加方便的搜集数据
   foreach (var data in datas)  //用foreach方法遍历DataTable
   {//实现字符串的拼接;每行数据用$隔开,每行数据的每个元素用|隔开;有利于前台解析数据;
    sb.Append(data.ipaddress).Append("|").Append(data.msg).Append("|").Append(data.posttime).Append("$");
   }
   context.Response.Write(sb);
  }

做完这些步骤,操作数据库的部分就已经完成了。现在只要在前台把一般处理程序返回的数据解析一下并附加的相应的位置就可以了!

首先在前台引用“jquery-1.4.2.js”jquery库;然后开始编写js脚本;

$(function () {
   $.post("WSXPL1.ashx", function (data, status) { //通过WSXPL1.ashx获取所有的评论内容
    if (status == "success") {
     var result = data.split("$"); //按照$分割字符串
     for (var i = 0; i < result.length - 1; i++) {
      var msg = result[i];
      var line = msg.split("|");  //按照|分割字符串
      var pinglun = $("<li>用户ID:" + line[0] + "; 评论内容:" + line[1] + "; 评论时间:" + line[2] + "</li>");
      $("#pinglunlist").append(pinglun); //把得到的评论结果追加到ul元素上
     }
    }
    else {
     alert("ajax错误!");
    }
   })

   $("#btnpinglun").click(function () { //设置btn事件
    var msg = $("#msg").val();
    $.post("ashx/WSXPL.ashx", { "msg": msg }, function (data, status) {
     if (status == "success") {
      if (data == "ok") {
       $.post("WSXPL1.ashx", function (data, status) { //为了实现评论的时候评论内容会自动的添加到ul上
        if (status == "success") {
         var result = data.split("$");
         var msg = result[result.length - 2];  //获取最后一条评论
         var line = msg.split("|");
         var pinglun = $("<li>用户ID:" + line[0] + "; 评论内容:" + line[1] + "; 评论时间:" + line[2] + "</li>");
         $("#pinglunlist").append(pinglun);  //把最后一条评论追加到ul上
        }
        else {
         alert("ajax错误!");
        }
       })
       alert("评论成功!");
      }
      else {
       alert("评论失败!");
      }
     }
    })

   })
  })

做完这些直接运行就可以了!
以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
Bootstrap作品展示站点实战项目2
Oct 14 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
node.js中axios使用心得总结
Nov 29 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
Jul 13 Javascript
Vue学习笔记之计算属性与侦听器用法
Dec 07 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
JavaScript代码性能优化总结篇
May 15 #Javascript
window.onload绑定多个事件的两种解决方案
May 15 #Javascript
js仿淘宝和百度文库的评分功能
May 15 #Javascript
RequireJS使用注意细节
May 15 #Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 #Javascript
jQuery插件开发汇总
May 15 #Javascript
Javascript的无new构建实例详解
May 15 #Javascript
You might like
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
吐槽一下我所了解的Node.js
2014/10/08 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python中为什么要用self探讨
2015/04/14 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
财务副总经理工作职责
2013/11/25 职场文书
服务中心夜班服务员岗位职责
2013/11/27 职场文书
中秋节主持词
2014/04/02 职场文书
python lambda 表达式形式分析
2022/04/03 Python