Recommandé: ASP + AJAX ne révèle pas de rafraîchir pour ajouter des amis En raison de relations de travail, l'une des fonctions est d'augmenter l'autre partie en tant qu'ami. Comme le montre la figure: la méthode utilisée est ajax, et le code approprié est moins cher: un href = javascript: void (0); onClick = add_username ('% = rs (nom d'utilisateur)%'); Ajouter en tant qu'ami / a, la vérification JS utilisée: Script Language = JavaScript Src = ajax.
Une classe ASP utilisée pour implémenter la fonction TAG, vous pouvez comprendre les fonctions spécifiques si vous pouvez les comprendre.
Modifiez l'enregistrement:
1. Ajout de la fonction d'extension, 2006-12-3
<%
'*******************************
'Nom de la classe: TagEngine
'Nom: Tag Engine
'Date: 2006-11-29
'Auteur: Leng Yue, Xilou
'Site Web: www.xilou.net | www.chinacms.org
'Description: Seule la fonction d'extraction des balises, aucune fonction des balises d'analyse
'Copyright: veuillez vous référer à la source de réimpression, auteur
'*******************************
«Dernière modification: 2006-12-3
'Nombre de modifications: 3
«Instructions de modification: modifiez les règles pour rendre la correspondance plus précise
«Version actuelle: v1.1.3
'*******************************
Classe TAGENGINE
Objet régulier de regex privé
'Définir les règles de balise
Tagbegin privé
Tagend privé
Blockbegin privé_begin
Blockbegin privé_end
Blockend_begin privé
Blockend privé
'// initialisation
Private Sub class_Initialize ()
'Initialiser les règles de balise
tagbegin = {
TAGEND =}
BLOCKBEGIN_BEGIN = <Block:
blockbegin_end =>
blockend_begin = </ block:
blockend_end =>
'Initialiser l'objet ordinaire
Définir regex = new regexp
regex.ignorecase = true 'est insensible au cas
regex.global = match réel'global
Sub-Sub
Private Sub class_termiate ()
'Libérez l'objet
Si isObject (regex) alors définissez regex = rien
Sub-Sub
'Méthode: ResetPattern ()
'paramètre:
'Retour: pas de valeur de retour
«Fonction: réinitialisez les règles de balise
Public sub-resetpattern (tagbegin, tagend, _
Blockbegin_begin, _
Blockbegin_end, _
blockend_begin, _
blockend_end _
)
tagbegin = tagbegin
TAGEND = TAGEND
BLOCKBEGIN_BEGIN = BLOCKBEGIN_BEGIN
blockbegin_end = blockbegin_end
blockend_begin = blockend_begin
blockend_end = blockend_end
Sub-Sub
'Méthode: getblocks (temp, nom de bloc)
'Paramètre: temp, le contenu à correspondre; nom de blocage, nom de l'indicateur de blocage
'Retour: retour à l'objet de collection (matchs)
'Fonction: obtenez la collection de balises de bloc
Fonction publique getblocks (temp, nom de bloc)
Sombre
Pattern = (& Blockbegin_begin & [] * & BlockName & / b [/ w / w] *? & Blockbegin_end
Pattern = Pattern &) ([/ w / w] *?) & Blockend_begin & [/ n / r] * & Blockname & [] * & blockend_end
'Réponse.WRITE MOTEM
regex.pattern = motif
Set getblocks = regex.execute (temp) 'renvoie l'ensemble correspondant
Fonction finale
'Méthode: getblockbyatt (temp, attributeName, attributValue)
«Argument: temp, le contenu à correspondre; attributeName, nom d'attribut; attributValue, valeur d'attribut
'Retour: retour à l'objet de collection (matchs)
'Fonction: Obtenez un ensemble de blocs correspondant en fonction de la valeur d'un certain attribut dans l'étiquette de blocage
Fonction publique getblockbyatt (temp, attributeName, attributValue)
Sombre
Pattern = (& Blockbegin_begin & [/ w / w] *? [/ n / r] + & attributeName
Pattern = Pattern & [] * = [] * / & Chr (34) & AttributeValue & / & Chr (34) & [/ n / r] * [/ w / w] *?
motif = motif & blockbegin_end
motif = motif &) ([/ w / w] *?) & blockend_begin & [/ w / w] *? & blockend_end
'Réponse.WRITE MOTEM
regex.pattern = motif
Set getblockbyatt = regex.execute (temp) 'renvoie l'ensemble correspondant
Fonction finale
'Méthode: getattvalue (temp, attributeName)
«Article: Temp, le contenu à correspondre; attributeName, nom d'attribut
'Retour: retour à l'objet de collection (matchs)
'Effet: obtenez la valeur d'attribut dans la balise de bloc
Fonction publique getattvalue (temp, attributeName)
Sombre
Pattern = [/ n / r] + & attributeName & [] * = [] * / & chr (34) & ([^ / f / n / r / t / v / & chr (34) &] *?) / & chr (34)
'Réponse.WRITE MOTEM
regex.pattern = motif
Définissez getattvalue = regex.execcute (temp)
Fonction finale
'Méthode: Parsetag (temp, tagname, tagvalue)
«Argument: temp, le contenu à correspondre; attributeName, nom d'attribut; attributValue, valeur d'attribut
'Retour: retournez la chaîne remplacée
'Effet: remplacer les balises simples
Fonction publique Parsetag (temp, tagname, tagvalue)
Sombre
'Pattern = Tagbegin & [] * & Tagname & [] * & Tagend
motif = tagbegin & tagname & tagend
regex.pattern = motif
Parsetag = regex.replace (temp, tagvalue)
Fonction finale
'Méthode: Clearblocks (TEMP)
'Argument: temp, quoi faire correspondre
'Retour: renvoie la chaîne effacée
'Effet: effacez toutes les balises de blocage
Fonction publique Clearblocks (TEMP)
Sombre
Pattern = Blockbegin_begin & [/ w / w] *? & Blockbegin_end & [/ w / w] *?
Pattern = Pattern & Blockend_begin & [/ w / w] *? & Blockend_end
regex.pattern = motif
clearblocks = regex.replace (temp,)
Fonction finale
'Méthode: ClearTags (TEMP)
'Argument: temp, quoi faire correspondre
'Retour: renvoie la chaîne effacée
'Effet: effacez toutes les balises uniques
Fonction publique ClearTags (TEMP)
Sombre
motif = tagbegin & [^ / f / n / r / t / v] *? & Tagend
regex.pattern = motif
clearTags = regex.replace (temp,)
Fonction finale
'Méthode: Showerror (errdes)
'Paramètre: errdes, description d'erreur
'Retour: aucun
'Effet: afficher l'erreur
Sub Sub Downror (errdes)
Dim errinfo, cssyle
cssstyle = style = & chr (34)
CSSSTYLE = CSSSTYLE & FONT: Bold 12px 150%, 'Arial'; bordure: 1px solide # CC3366;
CSSSTYLE = CSSSTYLE & Largeur: 50%; Couleur: # 990066; rembourrage: 2px; & Chr (34)
errinfo = vbcrlf & <ul & cssstyle &> <li> & errdes & </li> </ul> & vbcrlf
Response.Write Errinfo
Sub-Sub
'******************* La fonction standard se termine ******************
'Ce qui suit sont des extensions personnalisées
'Méthode: ext_getsimpleblocks (temp, nom de bloc)
'Paramètre: temp, le contenu à correspondre; nom de blocage, nom de l'indicateur de blocage
'Retour: retour à l'objet de collection (matchs)
'Fonction: Obtenez une collection de tags de bloc simples
'Exemple: <Block: new id = loop = />
Fonction publique ext_getsimpleblocks (temp, nom de bloc)
Sombre
Blockegin Dim, Blockend
'Redéfinir les règles de balise
Blockbegin = <Block:
blockend = />
Pattern = Blockbegin & [] * & Blockname & / b [/ w / w] *? & Blockend
regex.pattern = motif
SET EXT_GETSIMPLEBLOCKS = regex.ExECUTE (TEMP)
Fonction finale
'******************* La fonction standard se termine ******************
'Ce qui suit sont des extensions personnalisées
'Méthode: ext_getsimpleblocks (temp, nom de bloc)
'Paramètre: temp, le contenu à correspondre; nom de blocage, nom de l'indicateur de blocage
'Retour: retour à l'objet de collection (matchs)
'Fonction: Obtenez une collection de tags de bloc simples
'Exemple: <Block: new id = loop = />
Fonction publique ext_getsimpleblocks (temp, nom de bloc)
Sombre
Blockegin Dim, Blockend
'Redéfinir les règles de balise
Blockbegin = <Block:
blockend = />
Pattern = Blockbegin & [] * & Blockname & / b [/ w / w] *? & Blockend
regex.pattern = motif
SET EXT_GETSIMPLEBLOCKS = regex.ExECUTE (TEMP)
Fonction finale
'Méthode: ext_getText (chemin)
'Argument: chemin, chemin relatif ou absolu vers le texte à lire
'Retour: retourner le contenu du texte
'Fonction: lisez le fichier
'Exemple: c = ext_getText (tpl.htm)
Fonction publique ext_getText (chemin)
DIM FSO, F, Texte
Sur l'erreur reprendre ensuite
Set fso = createObject (scripting.fileSystemObject)
Set f = fso.OpentextFile (chemin)
text = f.readall
Si err alors
Err.Clear
doucheror Une erreur s'est produite lors de la lecture du fichier ...
Si IsObject (FSO), définissez FSO = rien
Fonction de sortie
Terminer si
Si IsObject (FSO), définissez FSO = rien
Ext_getText = texte
Fonction finale
'Méthode: ext_getincludeFile (temp)
'Argument: temp, quoi faire correspondre
'Retour: retour à l'objet de collection (matchs)
'Fonction: analyser le bloc de <! - # include file = tpl.html ->
'Exemple: ext_getincludeFile (temp) (0) .submatches (0), renvoyez le premier nom de fichier correspondant
Fonction publique ext_getincludefile (temp)
Sombre
Blockegin Dim, Blockend
'Redéfinir les règles de balise
Blockbegin = <! - # Inclure
blockend = ->
Pattern = Blockbegin & [] * fichier [] * = [] * / ([/ w / w] *?) / [] * & blockend
regex.pattern = motif
Set ext_getincludefile = regex.execcute (temp)
Fonction finale
Classe finale
%>
Partager: ASP restreint IP Voting Exemple complet Code En raison des relations de travail, l'une des fonctions consiste à voter sur les utilisateurs, exigeant que la même IP ne vote que sur le même utilisateur une seule fois, post ASP Code:% 'Auteur: Wurong Source: DB_Conn (DBS) VoteserName = Trim (request.Querystring (nom d'utilisateur)) RS_CREATE (Sélectionner le nom d'utilisateur de [User] Where Username ='