前回の記事はインターフェースについてでした。次に、リフレッシュせずにデータベースにデータを書き込む方法について書きます。
1 人または数人の特定のスコアを変更すると、更新せずにデータベースに書き込まれることがあります。
まず、XMLHttpRequest オブジェクトを宣言する必要があります
// XMLHttpRequest オブジェクトを宣言します
var xmlHttp;
function createXMLHTTP() {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //Mozilla ブラウザ
}
else if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") //古いバージョンの IE
}
catch (e) { }
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") //新しいバージョンの IE
}
catch (e)
{ }
if ( !xmlHttp) {
window.alert("XMLHttpRequest オブジェクト インスタンスを作成できません!");
return
}
}
}
同時に、変更が成功したかどうかを判断するためにコールバック関数が必要です
//レコードのコールバック関数を更新または追加します (スコアが成功したかどうかを確認します)
function ModifyScore ()
{
if (xmlHttp.readyState == 4)
{
// if (xmlHttp.status == 200)
{
if (xmlHttp.responseText == "true")
{
}
else
{
// alert("評価に失敗しました。再評価するか、管理者に連絡してください" );
}
}
}
}
準備が完了すると、次のようになります。は重要なステップです:
スコアを変更するときにこのコードを記述する必要があるため、データベースに入力します。そのため、このコードを実行するだけで、ドロップダウン ボックスの値を変更できます (選択した項目をループする場合)。前のブログ:
//相互を取得しますレビュー ID
varcriticsID = checkbox[i].value;
//変更した値をデータベースに書き込みます
//プロジェクトのスコアを取得します
var coreAll = document.getElementById("score" checkbox [i].value srcElem.id "");
var accessAllScore = coreAll.outerText;
//プロジェクト番号を取得します
varassess = document.getElementById("assess" srcElem.id); 🎜>varassessID =assess.title;
createXMLHTTP(); //XMLHttpRequest オブジェクトを作成します
//ページが実行されます
var url = "CriticsAgainAjax.aspx?criticsID" &assessID="assessID "&accessAllScore="accessAllScore "&Event=allCriticsInfo";
xmlHttp.open("Post", url, true);
// xmlHttp.setRequestHeader("Content-Type","application/x) -www-form-urlencoded");
xmlHttp.onreadystatechange = AnswerOneKindQuestion;
xmlHttp.send(null);
最後に、CriticsAgainAjax.aspx のパラメーターを取得するだけで済みます。データベースに書き込みます
//パラメータを取得します
if(Request.QueryString["Event"].ToString() == "allCriticsInfo")
{
string 批評家 ID = Request.QueryString["criticsID"].ToString(); assessID = Request.QueryString["assessID"].ToString();
string accessAllScore =Request.QueryString["accessAllScore"].ToString( );
パラメータの後が渡されると、データベースへの書き込みは非常に簡単なので、ここでは説明しません。
このように、最前面に表示される効果は、更新がなく、データがデータベースに時々書き込まれることです。面倒な作業はすべて CriticsAgainAjax.aspx ページに任せるだけでよく、これも適切な分業です。
これを記述することのもう 1 つの利点は、リフレッシュが少なくなることに加えて、ajax が非同期操作であることです。つまり、データが js ページの CriticsAgainAjax.aspx にスローされた後、CriticsAgainAjax.aspx かどうかを考慮せずに実行を継続します。が完了すると、100 個のデータがスローされる可能性があり、データベースへの書き込みには 3 秒かかりますが、スローにかかる時間は非常に速く、おそらく 10 分の数秒しかないため、ユーザーは次のようになります。非常に気分が良く、続行を選択してから半日待つ必要はありません。