Recomendado: Asp+Ajax não atinge a atualização para adicionar amigos Devido a relações de trabalho, uma das funções é aumentar a outra parte como amigo. Como mostrado na figura: o método usado é Ajax e o código apropriado é mais barato: a href = javascript: void (0); OnClick = add_username (' %= rs (nome de usuário) %'); Adicionar como amigo/a, a verificação JS usada: idioma de script = javascript src = ajax.
Uma classe ASP usada para implementar a função de tag, você pode entender as funções específicas se puder entendê -las.
Modifique o registro:
1. Adicionando a função de extensão, 2006-12-3
<%
'***********************************
'Nome da classe: TagEngine
'Nome: Motor de tag
Data: 2006-11-29
'Autor: Leng Yue, Xilou
'Site: www.xilou.net | www.chinacms.org
'Descrição: Somente a função de extrair tags, nenhuma função de analisar tags
'Copyright: Por favor, consulte a fonte de reimpressão, autor
'***********************************
Último modificado: 2006-12-3
'Número de modificações: 3
'Instruções de modificação: modifique as regras para tornar a correspondência mais precisa
'Versão atual: v1.1.3
'***********************************
Classe TagEngine
Objeto regular de regex privado
'Defina regras de tag
Private Tagbegin
Tagend privado
Private Blockbegin_Begin
Private Blockbegin_end
Private Blockend_Begin
Blockend_end privado
'// inicialização
Sub -classe privado_initialize ()
'Inicialize as regras de tag
tagbegin = {
Tagend =}
blockbegin_begin = <bloco:
blockbegin_end =>
BLOCKEND_BEGIN = </bloco:
bloqueio_end =>
'Inicialize o objeto regular
Definir regex = novo regexp
regex.ignorecase = true 'é insensível ao caso
regex.global = Match True'Global
Final sub
Sub -classe particular ()
'Libere o objeto
Se Isobject (regex) então defina regex = nada
Final sub
'Método: ResetPattern ()
'parâmetro:
'Retorno: sem valor de retorno
'Função: redefinir as regras da tag
Public Sub RESETPATTERN (TAGBEGIN, TAGEND, _
blockbegin_begin, _
blockbegin_end, _
Blockend_Begin, _
bloqueio_end _
)
tagBegin = tagBegin
TAGEND = TAGEND
blockbegin_begin = blockbegin_begin
blockbegin_end = blockbegin_end
BLOCKEND_BEGIN = BLOCKEND_BEGIN
bloqueador_end = bloqueador_end
Final sub
'Método: GetBlocks (Temp, BlockName)
'Parâmetro: temp, o conteúdo para corresponder; BlockName, Nome da bandeira do bloco
'Retorno: retorne ao objeto de coleção (correspondências)
'Função: Obtenha a coleção de tags de bloco
Função pública GetBlocks (Temp, BlockName)
Padrão escuro
Pattern = (& BlockBegin_Begin & []*& BlockName &/b [/w/w]*? & Blockbegin_end
padrão = padrão &) ([/w/w]*?) e bloqueio_begin & [/n/r]*& blockname & []*& bockend_end
'Response.Write Pattern
regex.pattern = padrão
Definir getBlocks = regex.execute (temp) 'Retorna o conjunto de correspondência
Função final
'Método: getBlockbyatt (temp, atributeName, attributeValue)
'Argumento: Temp, o conteúdo de corresponder; Nome do atributo, nome de atributo; atribuitValue, valor do atributo
'Retorno: retorne ao objeto de coleção (correspondências)
'Função: obtenha um conjunto de blocos correspondentes com base no valor de um determinado atributo no rótulo do bloco
Função pública getBlockbyatt (temp, atributeName, attributeValue)
Padrão escuro
padrão = (& blockbegin_begin & [/w/w]*? [/n/r]+& atributeName
padrão = padrão & []*= []*/& ch (34) e attributeValue &/& ch (34) & [/n/r]*[/w/w]*?
padrão = padrão e blockbegin_end
padrão = padrão &) ([/w/w]*?) e bloqueio_begin & [/w/w]*? & bockend_end
'Response.Write Pattern
regex.pattern = padrão
Definir getBlockByatt = regex.execute (temp) 'Retorna o conjunto de correspondência
Função final
'Método: GetAttValue (Temp, AttributeName)
'Artigo: Temp, o conteúdo para corresponder; Nome do atributo, nome do atributo
'Retorno: retorne ao objeto de coleção (correspondências)
'Efeito: obtenha o valor do atributo na tag de bloco
Função pública getAttValue (temp, atributeName)
Padrão escuro
padrão = [/n/r]+& atributeName & []*= []*/& chr (34) & ([^/f/n/r/t/v/& chr (34) &]*?)/& ch (34)
'Response.Write Pattern
regex.pattern = padrão
Definir getAttValue = regex.execute (temp)
Função final
'Método: Parsetag (Temp, Tagname, TagValue)
'Argumento: Temp, o conteúdo de corresponder; Nome do atributo, nome de atributo; atribuitValue, valor do atributo
'Retornar: retorne a corda substituída
'Efeito: substitua tags simples
Parsetag de função pública (temp, tagname, tagValue)
Padrão escuro
'Pattern = TagBegin & []*& TagName & []*& Tagend
Pattern = TagBegin & Tagname & Tagend
regex.pattern = padrão
parsetag = regex.Replace (temp, tagvalue)
Função final
'Método: ClearBlocks (Temp)
'Argumento: temp, o que combinar
'Retorno: retorna a corda limpa
'Efeito: limpe todas as tags de bloco
Função pública Clearblocks (temp)
Padrão escuro
Pattern = blockbegin_begin & [/w/w]*? & Blockbegin_end & [/w/w]*?
Pattern = Pattern & Blockend_Begin & [/w/w]*? & Blockend_end
regex.pattern = padrão
ClearBlocks = regex.replace (temp,)
Função final
'Método: Cleartags (Temp)
'Argumento: temp, o que combinar
'Retorno: retorna a corda limpa
'Efeito: limpe todas as tags únicas
Função pública Cleartags (temp)
Padrão escuro
Pattern = TagBegin & [^/F/N/R/T/V]*? & TAGEND
regex.pattern = padrão
cleartags = regex.replace (temp,)
Função final
'Método: Showerror (Errdes)
'Parâmetro: errdes, descrição do erro
'Retorno: Nenhum
'Efeito: Exibir erro
Public Sub Showerror (Errdes)
Dim Errinfo, cssstyle
cssstyle = style = & ch (34)
cssstyle = cssstyle & font: negrito 12px 150%, 'arial'; borda: 1px sólido #cc3366;
cssstyle = cssstyle & width: 50%; cor:#990066; preenchimento: 2px; & chr (34)
Errinfo = Vbcrlf & <ul & cssstyle &> <li> & errdes & </li> </ul> & vbcrlf
Response.Write Errinfo
Final sub
'*******************
'A seguir são extensões personalizadas
'Método: ext_getsimpleblocks (temp, blockname)
'Parâmetro: temp, o conteúdo para corresponder; BlockName, Nome da bandeira do bloco
'Retorno: retorne ao objeto de coleção (correspondências)
'Função: Obtenha uma coleção de tags de bloco simples
'Exemplo: <bloco: novo id = loop =/>
Função pública ext_getSimpleBlocks (Temp, BlockName)
Padrão escuro
Dim Blockbegin, Bloqueio
'Redefine as regras da tag
blockbegin = <bloco:
bloqueio =/>
padrão = blockbegin & []*& blockname &/b [/w/w]*? & bloqueio
regex.pattern = padrão
Definir ext_getsimpleBlocks = regex.execute (temp)
Função final
'*******************
'A seguir são extensões personalizadas
'Método: ext_getsimpleblocks (temp, blockname)
'Parâmetro: temp, o conteúdo para corresponder; BlockName, Nome da bandeira do bloco
'Retorno: retorne ao objeto de coleção (correspondências)
'Função: Obtenha uma coleção de tags de bloco simples
'Exemplo: <bloco: novo id = loop =/>
Função pública ext_getSimpleBlocks (Temp, BlockName)
Padrão escuro
Dim Blockbegin, Bloqueio
'Redefine as regras da tag
blockbegin = <bloco:
bloqueio =/>
padrão = blockbegin & []*& blockname &/b [/w/w]*? & bloqueio
regex.pattern = padrão
Definir ext_getsimpleBlocks = regex.execute (temp)
Função final
'Método: ext_getText (caminho)
'Argumento: caminho, caminho relativo ou absoluto para o texto a ser lido
'Retornar: retornar conteúdo de texto
'Função: Leia o arquivo
'Exemplo: c = ext_getText (tpl.htm)
Função pública ext_getText (caminho)
Dim fso, f, texto
Em erro de erro em seguida
Set fso = createObject (script.filesystemObject)
Set f = fso.opentExtFile (caminho)
texto = f.readall
Se errar então
Err.clear
SHOWRROR Um erro ocorreu ao ler o arquivo ...
Se Isobject (FSO), então defina FSO = nada
Função de saída
Final se
Se Isobject (FSO), então defina FSO = nada
Ext_getText = texto
Função final
'Método: ext_getincludefile (temp)
'Argumento: temp, o que combinar
'Retorno: retorne ao objeto de coleção (correspondências)
'Função: analise o bloco de <!-#inclua arquivo = tpl.html->
'Exemplo: ext_getincludefile (temp) (0) .submatches (0), retorne o primeiro nome de arquivo correspondente
Função pública ext_getincludefile (temp)
Padrão escuro
Dim Blockbegin, Bloqueio
'Redefine as regras da tag
BlockBegin = <!-#Incluir
bloqueio =->
padrão = blockbegin & []*arquivo []*= []*/([/w/w]*?)/[]*& bloqueio
regex.pattern = padrão
Set ext_getincludefile = regex.execute (temp)
Função final
Classe final
%>
Compartilhar: ASP Restrito Votação IP Complete Código de Exemplo Devido às relações de trabalho, uma das funções é votar nos usuários, exigindo que o mesmo IP vote no mesmo usuário apenas uma vez, poste o código asp: % 'Autor: Wurong Fonte: DB_Conn (DBS) VoteName = Trim (request.QueryString (UserName)) rs_create (selecione USERNAME FROM [Usuário].