私たちは、同期実行と非同期実行の違いを理解しています。ユーザー エクスペリエンスを向上させるために、非同期メソッドを使用していくつかの問題に対処します。非常に不親切なので、ajax を使用してユーザー エクスペリエンスを完成させることができます。次に、jquery の ajax を使用して、更新せずにコンテンツを取得する方法について説明します。
コンテンツを一方的に取得するだけであり、ページネーションについては考慮しません。リフレッシュを行わないページネーションについては後ほど説明します。
返されたコンテンツを保存するためにページに Div コンテナを配置します

注: wait.gif は、アンロードされたコンテンツがロードされていないときに、プログレス バーに似た効果が表示され、ユーザー エクスペリエンスを向上させることができます。次に、最も重要なことは jquery であり、これは ajax で完了する必要があります
コード:
function getInfo()
{
$.ajax({
url:"doAction.aspx?fig=reader&id=1&page=1",
type:"POST",
success:function(Data)
{
$("#comment").html(Data);
//arguments[0] $("#comment").html(arguments[0]); を通じて受け取ることもできます。
},
error:function()
{
alert("プログラムエラー");
}
})
}
url: が指す URL
タイプ: 送信メソッド (POST または GET)
成功: 通信が成功した後に実行された関数
エラー: 通信失敗後に関数が実行されました
beforeSend: 通信前にハンシュオが実行されます
complete: 通信完了後に実行される関数
ここでは Get より安全な POST 送信メソッドが使用されているため、次のメソッドに置き換えることもできます
function getInfo1() {
$.post("doAction.aspx", { fig: "reader", id:"1", page :"1" }, function () {
$("#comment").html(arguments[0]);
})
}
がわかります。 POST 送信メソッドを使用した場合のパラメーターの書き方が異なること。最初のメソッドと 2 番目のメソッドの違いは次のとおりです。
まず、doAction.aspx ページでパラメーターを受け取るとき、最初の方法は Request.QueryString["fig"] を使用することであり、2 番目の方法は Request.Form["fig"] を使用することです
2 番目に、最初のメソッドは、通信が失敗した場合にわかりやすいエラー メッセージを返すことができます。2 番目のメソッドは、まだ見つからない場合に返すことができます。
次に、doAction.aspx ページで、対応する処理を実行します。
if (Request.Form["fig"] != null && Request.Form["fig"].ToString() == "reader")
{
ajax_getcomment(" 1 ",1);
}
//データベースからデータを取得します
private void ajax_getcomment(string id, int page)
{
using (CommentBO cm = new CommentBO(id, page - 1))
{
Response.Write(cm.getCommentContent());
}
}
同様に、Get 送信メソッドのみを使用する場合、$.get("",{},function(){}) を使用する場合にも同じことが当てはまります。
コンテンツをロードする別の方法は、load() メソッドを使用することです。使用方法については、load を使用してコンテンツをロードする方法について簡単に説明します。
コード
この样就は页面里了にコンテンツを追加しました,ある一点问問題は発行页面内に返されるコンテンツとアラート出力の一部の不一致であり、アラート出力の戻りhtml标签、しかし页面はありません、那は页面すでに解析了html代コードのためです
その他の追加、修正、削除などの基本的な操作も同様であり、大きな変更がありますが、doaction.aspx 面内で異なる方法を使用しているだけであり、以下の主な jquery 代コードの出力が見られます
function addpinlun()
{
var $CommentParentID =arguments[0];
var $CommentUser =$('#CommentUser').val();
var $CommentText =$('#CommentText').val();
var $CommentValidate =$('#CommentValidate' ).val();
if($.trim($CommentUser)=='')
{
alert("请充填写昵称!");
$("#CommentUser").focus( );
return false;
}
if($.trim($CommentText)=='')
{
alert("请充填写评论内容!");
$("#CommentText").focus();
return false;
}
if($.trim($CommentValidate)=='')
{
alert("请输入验证码");
$("#CommentValidate").focus();
return false;
}
StopButton('CommentSubmit',10);
// 验证完了ajax を追加できます
$.ajax({
url: "doAction.aspx?action=add&commentparentid=" $CommentParentID "&commentuser="escape($CommentUser) "&commenttext="escape($CommentText) "&commentvalidate=" scape($CommentValidate) "&time=" new Date().toString(),
type: "GET",
成功: function (data) {
if (arguments[0] == "ERROR ") {
alert("验证码超時,请重新输入");
}
else {
getInfo();
$("#CommentText").val("" );
//验证成功時,刷新验证码图片
$("#CommentValidateImages").attr("src", "VerifyCode.aspx?s=" Math.random());
// alert("追加成功");
$("#alertMessgae").html(data);
}
$('#CommentValidate').val("");
}
})
}
function StopButton()
{
document.getElementById(arguments[0]).disabled=true;
document.getElementById(arguments[0]).value="提交(" argument[1] ] ")";
if(arguments[1]>=1)
{
arguments[1]--;
window.setTimeout("StopButton('" argument[0] " '," argument[1] ")",1000);
}
else
{
document.getElementById(arguments[0]).disabled=false;
document.getElementById( argument[0]).value="提交";
}
}
DoAction.aspx页面の部分代码页贴出来
if(Request.QueryString["action"]!=null && Request.QueryString["action"]=="add")
{
if (Session["VerifyCode"]. ToString().ToLower() != commentvalidate.ToLower())
{
Response.Write("ERROR");
}
else
{
DBQuery.ExecuteScalar( "コメントに挿入(commentparentid,commentuser,commenttext,commentreply,commentip)values('" commentparentid "','" commentuser "','" Server.HtmlEncode(commenttext) "','','" Request.ServerVariables[" REMOTE_ADDR"] "')");
Response.Write("<script>alert('コメントは正常に公開されました!</script>");
}
}
ajax には多数の属性があり、必要に応じて API を確認してさまざまな属性を呼び出すことができます。ここで注意すべき点が 1 つあります。
ユーザー名が重複しているかどうかを確認したい場合は、$.get の代わりに $.getIfModified を使用してテストできます。
初めて$.getを使用して名前を登録する場合は、再度テキストボックスに同じ名前を入力しても登録できますので、ご注意ください。 。

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版
中国語版、とても使いやすい

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック



