Ruang obrolan non-refresh Ajax diimplementasikan oleh ajax+asp.net+mssql, mendukung editor web html. Untuk referensi Anda. Namun ada sedikit masalah yaitu ketika menggunakan shortcut ctrl+enter untuk mengirim informasi di Firefox, jika fungsi pengiriman tidak dipanggil dengan penundaan, akan muncul kotak dialog download ff yang aneh.
Kode JScriptif(e.ctrlKey&&e.keyCode==13){
e.preventDefault();
e.stopPropagasi();
setTimeout("Showbo.Chat.send()",50);//Ketika prompt peringatan segera digunakan di ff, alat pengunduhan muncul, dan ini aneh.
kembali salah;}
},PALSU);
Untuk mempercepat, prosedur tersimpan digunakan.
Silakan lihat artikel berikut untuk versi asp dan php
ajax+asp+mssql tidak ada penyegaran ruang obrolan
ajax+php+mssql tidak ada penyegaran ruang obrolan
Untuk menggunakan halaman dinamis yang berbeda, cukup ubah nilai variabel RequstUrl di file lib.js.
Unduhan sampel lengkap
Efeknya adalah sebagai berikut
Ada batasan panjang konten, jadi saya tidak akan memposting semua kodenya. Untuk melihat semua kodenya, silakan unduh contohnya atau lihat artikel berikut.
ajax+asp.net+mssql tidak ada penyegaran ruang obrolan
Kode utama C# diposting di bawah. Untuk versi lain, silakan periksa tautan di atas.
ajax.cs
kode C#menggunakan Sistem;
menggunakan Sistem.Web;
menggunakan Sistem.Data;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Data.SqlClient;
kelas publik Ajax
{
bool statis pribadi IsNull(string v)
{
if (v == null || v.Trim() == "") mengembalikan nilai true;
jika tidak, kembalikan salah;
}
string statis pribadi Js(string v)
{
return v.Replace("'", "'");
}
string statis publik Login()
{
Permintaan HttpRequest = HttpContext.Current.Request;
string rStr = "";
string Nama Pengguna = Permintaan.Formulir["nn"];
jika (IsNull(Nama Pengguna))
{
rStr = "success:false,err:'Nama panggilan tidak boleh kosong!'";
}
else if (Nama Pengguna.Panjang > 20)
{
rStr = "success:false,err:'Nama panggilan tidak boleh melebihi 20 karakter!'";
}
kalau tidak
{
string UserId = "", Kunci = "";
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["db"]);
cn.Buka();
mencoba
{
SqlCommand cm = new SqlCommand("ajaxLogin", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@UserName", SqlDbType.NVarChar, 50));
cm.Parameter["@NamaPengguna"].Nilai = Nama Pengguna;
//==========Parameter keluaran
cm.Parameters.Add(new SqlParameter("@UserId", SqlDbType.NVarChar, 18));
cm.Parameter["@UserId"].Direction = ParameterDirection.Output;
cm.Parameters.Add(new SqlParameter("@UserKey", SqlDbType.NVarChar, 5));
cm.Parameter["@UserKey"].Arah = ParameterDirection.Output;
cm.ExecuteNonQuery();
UserId = cm.Parameter["@UserId"].Value.ToString().Trim();
Kunci = cm.Parameter["@UserKey"].Nilai.ToString().Trim();
if (UserId == "-1") rStr = @"success:false,err:'Terjadi kesalahan, silakan coba lagi nanti!'";
else if (UserId == "0") rStr = @"success:false,err:'Nama panggilan pengguna ini sudah ada, harap ubah nama panggilan Anda!'";
else rStr += "sukses:benar,UserId:'" + UserId + "',Kunci:'" + Kunci + "'";
cm.Buang();
}
tangkapan (Pengecualian e)
{
rStr = @"sukses:salah,err:'alasan n" + Js(e.Pesan) + "'";
}
cn.Tutup();
}
kembalikan rStr;
}
string statis publik Logout()
{
Permintaan HttpRequest = HttpContext.Current.Request;
string rStr = "", UserId = Permintaan.Form["uid"], Kunci = Permintaan.Form["kunci"];
if (IsNull(UserId) || IsNull(Key)) return "success:false,err:'Informasi pengguna hilang!'";
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["db"]);
cn.Buka();
mencoba
{
SqlCommand cm = new SqlCommand("ajaxLogout", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@UserId", SqlDbType.NVarChar, 18));
cm.Parameter["@UserId"].Nilai = UserId;
cm.Parameters.Add(new SqlParameter("@UserKey", SqlDbType.NVarChar, 5));
cm.Parameter["@UserKey"].Nilai = Kunci;
cm.Parameters.Add(new SqlParameter("@Result", SqlDbType.Int));
cm.Parameter["@Hasil"].Direction = ParameterDirection.Output;
cm.ExecuteNonQuery();
if(cm.Parameters["@UserId"].Value.ToString().Trim()=="0")rStr = "success:false,err:'Informasi pengguna tidak ada!'";
lain rStr="sukses:benar";
cm.Buang();
}
tangkapan (Pengecualian e)
{
}
cn.Tutup();
kembalikan rStr;
}
string statis publik Katakan()
{
Permintaan HttpRequest = HttpContext.Current.Request;
string Dari = Permintaan.Formulir["dari"], Ke = Permintaan.Formulir["ke"]
, Kunci = Permintaan.Form["kunci"], Pesan = Permintaan.Form["ct"], rStr = "";
if (IsNull(From) || IsNull(Key) || IsNull(To) || IsNull(Msg)) rStr = "success:false,err:'Transfer informasi tidak lengkap!'";
kalau tidak
{
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["db"]);
cn.Buka();
mencoba
{
SqlCommand cm = new SqlCommand("ajaxSay", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@UserKey", SqlDbType.NVarChar, 5));
cm.Parameter["@UserKey"].Nilai = Kunci;
cm.Parameters.Add(new SqlParameter("@From", SqlDbType.NVarChar, 18));
cm.Parameter["@Dari"].Nilai = Dari;
cm.Parameters.Add(new SqlParameter("@To", SqlDbType.NVarChar, 18));
cm.Parameter["@Ke"].Nilai = Ke;
cm.Parameters.Add(new SqlParameter("@Msg", SqlDbType.NVarChar, 800));
cm.Parameter["@Pesan"].Nilai = Pesan;
cm.Parameters.Add(new SqlParameter("@Result", SqlDbType.Int));
cm.Parameter["@Hasil"].Direction = ParameterDirection.Output;
cm.ExecuteNonQuery();
if (cm.Parameters["@Result"].Value.ToString() == "0") rStr = "sucess:false,err:'Penerbitan gagal! Alasan: Penerima sudah tidak ada lagi!'";
else rStr = "sukses: benar";
cm.Buang();
}
tangkapan (Pengecualian e)
{
rStr = "sukses:false,err:'Penerbitan gagal! Alasan n" + Js(e.Message) + "'";
}
cn.Tutup();
}
kembalikan rStr;
}
string statis publik ReadUser()
{
Permintaan HttpRequest = HttpContext.Current.Request;
string rStr = "", UserId = Permintaan.Form["uid"];
if (IsNull(UserId)) rStr += "sukses:false,err:'Id pengguna hilang!'";
kalau tidak
{
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["db"]);
cn.Buka();
mencoba
{
SqlCommand cm = new SqlCommand("ajaxReadUser", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@UserId", SqlDbType.NVarChar, 18));
cm.Parameter["@UserId"].Nilai = UserId;
tali j = "";
SqlDataReader dr = cm.ExecuteReader();
while (dr.Read()) j += ",{id:'" + dr[0] + "',nn:'" + Js(dr[1].ToString()) + "'}";
dr.Tutup();
cm.Buang();
rStr = "sukses:benar,data:[" + (j == "" ? "" : j.Substring(1)) + "]";
}
tangkapan (Pengecualian e)
{
rStr = @"success:false,err:'Terjadi kesalahan berikut n" + Js(e.Message) + "'";
}
cn.Tutup();
}
kembalikan rStr;
}
string statis publik Baca()
{
Permintaan HttpRequest = HttpContext.Current.Request;
string rStr = "";
string UserId = Permintaan.Form["uid"], Kunci = Permintaan.Form["kunci"];
if (IsNull(UserId) || IsNull(Key)) rStr = "success:false,err:'Informasi pengguna hilang!'";
kalau tidak
{
SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["db"]);
cn.Buka();
mencoba
{
SqlCommand cm = new SqlCommand("ajaxRead", cn);
cm.CommandType = CommandType.StoredProcedure;
cm.Parameters.Add(new SqlParameter("@UserId", SqlDbType.NVarChar, 18));
cm.Parameter["@UserId"].Nilai = UserId;
cm.Parameters.Add(new SqlParameter("@UserKey", SqlDbType.NVarChar, 5));
cm.Parameter["@UserKey"].Nilai = Kunci;
SqlDataReader dr = cm.ExecuteReader();
tali j = "";
while (dr.Read()) j += ",'" + Js(dr[0].ToString()) + "'";
dr.Tutup();
cm.Buang();
rStr = "sukses:benar,data:[" + (j == "" ? "" : j.Substring(1)) + "]";
}
tangkapan (Pengecualian e)
{
rStr = "success:false,err:'Terjadi kesalahan berikut" + Js(e.Message) + "'";
}
cn.Tutup();
}
kembalikan rStr;
}