Recomendado: Use ASP para fazer gráficos de pizza, gráficos de barras, etc. Em nosso trabalho, geralmente precisamos converter dados em gráficos de barras, gráficos de pizza etc. para facilitar e análises intuitivas de dados. Aqui, apresentarei a você um componente que fabrica gráficos de pizza e gráficos de barras no ASP: CSDRAWGRAPH, CSDGT.ZIP. Por ser um componente, precisamos usar o RegSV antes de usá -lo.
Programação orientada a objetos
À medida que a complexidade do design do programa aumenta, os métodos de programação estruturados não são suficientes. A razão fundamental do uso insuficiente é que é inconveniente reutilizar o código. Nasceu um método orientado a objetos e implementa as funções de reutilização de código relativamente completas por meio da herança. Muitos estudantes costumam fazer uma pergunta durante as entrevistas ao se candidatar a empregos. Vamos falar sobre o que é a programação orientada a objetos. Os alunos estão sem palavras e voltam para me perguntar como responder a essa pergunta. Eu disse a ele que apenas uma palavra é suficiente. A programação orientada a objetos é o encapsulamento de dados; A programação de paradigmas (modelos) é o encapsulamento de algoritmos. Mais tarde, quando um aluno encontrou esse problema, ele o respondeu simplesmente com uma frase simples, e a outra parte olhou para o aluno com admiração (o aluno me disse orgulhosamente mais tarde). Por que isso? Porque somente através de uma experiência e prática completas, essa essência pode ser extraída.
Métodos e idéias de design orientados a objetos foram realmente propostos no início dos anos 70. O objetivo é forçar o programa a manipular dados por meio de funções. Dessa forma, o encapsulamento de dados é implementado e o bug causado por qualquer código no método de design anterior pode ser evitado. É muito difícil encontrar e modificar esse bug. Então você pode dizer que, mesmo que eu não use o objetivo, quando quero acessar um determinado dados, apenas uso a função de chamada para acessá-los, não seria bom? Sim, tudo bem, mas não é obrigatório. As pessoas são preguiçosas. Quando quero adicionar 1 a i, por que tenho que chamar uma função? Esqueça, é mais fácil economizar problemas. Haha, por causa dessa preguiça, é difícil capturar quando o programa tem um bug. Orientado a objetos é obrigatório e resolve seu problema de preguiça no estágio de compilação.
Coincidentemente, o pensamento orientado a objetos é realmente consistente com o lidar com problemas em nossas vidas diárias. Por exemplo, pretendo jogar fora uma xícara de chá, como posso jogá -lo fora? É muito simples, pegue a xícara de chá, caminhe até a lata de lixo e jogue fora! Preste atenção à análise desse processo. Primeiro, selecionamos um objeto ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- As ações que podem ser aplicadas a ser limitadas: uma queda de chá pode ser atirada, usada para beber, usada para beber, a água pode ser limitada: uma capa pode ser atingida; Um pedaço de papel pode ser escrito, rasgo, queimado ... isto é, uma vez que um objeto é determinado, o método também é determinado. É assim que nossa vida diária é. No entanto, quando você pensa em nossas operações de programação e computador, esse não é o caso. Veja a operação do DOS como exemplo. Quero excluir um arquivo: C:> Del Nome do arquivo <Enter> no prompt do DOS. Preste atenção a esse processo. As ações estão na frente (Del) e os objetos estão na parte traseira (nome do arquivo), e os métodos orientados a objetos estão na ordem oposta. Portanto, é apenas uma questão de ordem, que impacto isso terá? Haha, você deve ter visto esse fenômeno: arquivo não encontrado. Ah ~~~, eu estava errado, eu estava errado, digitei uma carta no nome do arquivo errado, então entrei novamente: C:> Del Nome do arquivo 2 <Enter>. Infelizmente acontece novamente, relatório do computador: somente leitura do arquivo. Haha, dor :). Portanto, a operação do DOS realmente viola nossos hábitos diários (é claro, ninguém levantou objeções antes), mas agora, devido ao uso do design orientado a objetos, esses problemas são resolvidos em tempo de compilação, não em tempo de execução. obj.fun (), para esta declaração, seja um objeto ou uma função, se houver algum problema com sua entrada, ela será relatada durante a compilação, para que você possa modificá -lo, em vez de cometer erros durante a execução, o que fará com que você pegue bugs em todos os lugares.
Ao mesmo tempo, orientado a objetos, pode resolver o problema da reutilização do código - herança. Eu costumava escrever uma aula de cães, com atributos (variáveis): peludo, 4 pernas, uma cauda levantada (a que canta é um lobo), um nariz muito sensível e gosta de comer carne e ossos ... os métodos incluem (função): capaz de correr, cheirar, latir ... se ele pegar ratos, as pessoas o chamarão de medição. Ok, o tipo de cachorro foi escrito. Mas na minha vida real, o cachorro que tenho é muito parecido com o cachorro que escrevi antes, com apenas uma pequena diferença, ou seja, meu cachorro, é: encaracolado e longo, com um nariz pequeno, uma boca pequena ... então, eu derivei um novo tipo chamado pug e adicionei novos recursos ao cachorro. OK, o programa está concluído e o código correto do anterior é reutilizado - este é o benefício da programação orientada a objetos. Meu sucesso está apenas nos ombros do gigante. Obviamente, se você usar o VC, o código que mais reutiliza é a biblioteca da classe MFC.
=======================================================================================
OK, então veja como usamos asp.
Todo mundo geralmente usa o idioma de script padrão do IIS como o idioma de execução do servidor do ASP. No começo, o script VBS e o HTML são basicamente misturados para alcançar certas funções. Por exemplo, você precisa exibir os 5 mais recentes registros na página atual, é isso.
1. Defina a conexão com o banco de dados primeiro, como:
| A seguir, o conteúdo citado: db_path = ../database/cnbruce2005.mdb Definir Conn = Server.CreateObject (Adodb.Connection) Connstr = provedor = microsoft.jet.oledb.4.0; fonte de dados = & server.mappath (db_path) Conn.Open Connstr |
2. Em seguida, crie uma coleção de registros de banco de dados para extrair informações relevantes
| A seguir, o conteúdo citado: Set rs = server.createObject (adodb.recordset) SQL = Selecione Top 5 * FROM [NEWS] Ordem por N_ID DESC Rs.Open SQL, Conn, 1,1 |
3. Finalmente, exiba os dados através do método de loop
| A seguir, o conteúdo citado: Faça enquanto não é Rs.eof Response.Write RS (n_title) rs.movenext laço 'Há também operações finais de desligamento e liberação rs.close Defina rs = nada |
Então, aqui em Response.Write RS (n_title), para o design final da web, estima -se que alguns outros elementos de tag HTML precisem ser adicionados antes e depois dele. Então, naturalmente, os scripts do VBS e o HTML são misturados.
Vejamos novamente. Se houver muitas páginas que precisam exibir esses 5 registros, você precisa definir cada página como esta? Obviamente, o mais importante é que o design de cada página é diferente. Então esta é a repetição. Repita onde? Você pode não repetir?
1. Para conexões de banco de dados, um arquivo de conexão do banco de dados Conn.asp é estabelecido diretamente e o conteúdo é o acima.
2. Assim que você precisar usar o banco de dados e precisar estabelecer uma conexão, você pode incluir diretamente o arquivo de conexão do banco de dados referenciado.
<!-#inclua arquivo = Conn.asp->
Então, quais repetições são salvas acima? Repita cada conexão de banco de dados. Isso é antiduplicação para alguns códigos comuns. Vamos dar uma olhada nisso. Se eu quero que esta página exiba 5 peças e essa página para exibir 6 peças, o que devo fazer? Obviamente, essa pode ser apenas uma modificação simples da instrução SQL na página atual, como a modificação original do Top 5 no Top 6.
Ok, continue assistindo, há alguma repetição? Sim, exceto pelas diferentes definições de consulta SQL, os demais são todos duplicados.
Então, continue pensando em uma solução: você pode definir o número de itens extraídos? Eu só quero extrair apenas alguns itens, mas o programa só precisa escrever um. Então, neste momento, a função será útil. Por exemplo, eu defino uma função como esta:
| A seguir, o conteúdo citado: Função topnews (tnum) Set rs = server.createObject (adodb.recordset) SQL = Selecione Top & Tnum & * FROM [News] Ordem por N_ID DESC Rs.Open SQL, Conn, 1,1 Faça enquanto não é Rs.eof Response.Write RS (n_title) rs.movenext laço rs.close Defina rs = nada Função final |
Em seguida, você pode usar topnews (5) ou topnews (6) para completar a necessidade
... À primeira vista, parece que o ASP usa funções e está finalmente concluído. Como a função principal do programa é transformada em um módulo de função, você precisa chamá -lo diretamente ao usar essa função na página de primeiro plano. Se necessário, modifique o valor do parâmetro da função para ser um final perfeito/.
Então, por que as aulas foram introduzidas no ASP? O que é esse tipo? E como aplicá -lo?
Na linguagem de script ASP, o VBScript possui uma palavra -chave de classe, que pode ser usada para declarar uma classe personalizada. por exemplo
| A seguir, o conteúdo citado: Nome da classe declarações Classe final |
Aqui, membros públicos ou privados podem ser declarados em declarações, incluindo funções, membros e atributos.
O JavaScript usa uma função para declarar uma classe e, em seguida, define propriedades na função através deste.Prototipo e métodos isso.
Qual é simples escolher qual. Depois de definir o nome da classe, ou seja, a classe, o que pode ser feito aqui?
O primeiro. Documentação do MSDN: No Visual Basic 6.0, ao criar e destruir um módulo de classe, o módulo de classe usa os eventos inicialize e encerrar para executar todas as operações necessárias. Quando um objeto é encontrado pela primeira vez após uma nova declaração, o evento inicialize é levantado e, quando a última referência ao objeto é liberada, o evento de rescisão é levantado imediatamente. No entanto, esses métodos de evento podem ser chamados diretamente a qualquer momento durante a execução.
Então, muitas vezes vejo exemplos como este:
Classe CNBRUCE 'Declare uma classe chamada CNBRUCE
| A seguir, o conteúdo citado: CNRose privado Sub -Class_initialize privado cnrose = meu nome é cnrose. Final sub Sub -classe particular () Final sub Classe final |
Olha, isso é uma inicialização.
Além disso, existem métodos LET e GET na classe ASP. Por exemplo, adicione entre a classe CNBRUCE do código acima ... Classe final:
| A seguir, o conteúdo citado: Propriedade pública Obtenha Yname Yname = cnrose Propriedade final |
Isso é tornar -se:
Classe CNBRUCE 'Declare uma classe chamada CNBRUCE
| A seguir, o conteúdo citado: CNRose privado Sub -Class_initialize privado cnrose = meu nome é cnrose. Final sub Sub -classe particular () Final sub Propriedade pública Obtenha Yname Yname = cnrose Propriedade final Classe final |
Então, como extrair o valor, por exemplo
| A seguir, o conteúdo citado: Definir AAA = novo CNBRUCE Response.Write aaa.yname |
Observe que aaa.yname já parece um pouco. AAA é um objeto definido como a classe CNBRUCE. A saída final é exibida como o valor YNAME GET no objeto desta classe. Seu conteúdo de valor é o valor da variável cnrose e o valor foi inicializado. Portanto, o resultado final é que meu nome é cnrose.
Isso é Get, que extrai diretamente o interior da classe já encapsulada, e o que tal? Ou seja, operações de acesso interativo externo para classes. Por exemplo, agora aplico o valor definido externamente à classe. Isto é, primeiro defina:
| A seguir, o conteúdo citado: Propriedade pública Let Mname (NNN) cnrose = nnn propriedade final |
Seu significado é muito simples. O valor do parâmetro NNN será atribuído à variável cnrose de acordo com diferentes valores externos. Em seguida, o programa de combinação da OK, ou seja, o conteúdo da variável exibida cnrose, não é o conteúdo inicializado, mas o valor incerto aplicado externamente por Let. Em seguida, como aplicar Let.
aaa.mname = sdasdasd
Basta definir o valor diretamente. Então agora olhe para todo o programa:
| A seguir, o conteúdo citado: <% CLASSE CNBRUCE CNRose privado Sub -Class_initialize privado cnrose = meu nome é cnrose. Final sub Propriedade pública Obtenha Yname Yname = cnrose Propriedade final Propriedade pública Let Mname (NNN) cnrose = nnn propriedade final Classe final Definir AAA = novo CNBRUCE aaa.mname = hahahoho Response.Write aaa.yname %> |
Embora o valor de AAA.Mname seja definido como hahahoho, de acordo com a propriedade pública Let Mname (NNN), seu valor é para a variável cnrose. Quando assim, é possível que aaa.yname, de acordo com a propriedade pública, obtenha yname, não é de surpreender que o valor do resultado seja. /
Quanto aos programas funcionais, eles são definidos como função da função ou sub -rotina sub na classe.
Portanto, em geral, é apenas um invólucro de funções, e é fácil escrever e ficar bem ao aplicar (nome direto da classe, método, nome da classe, atributo -_-!), Mas não espere que ele tenha serviços de pensamento orientados a objetos como Java ou .Net.
O tempo é limitado, e o começo e o fim são apenas um pouco.
Compartilhar: Dicas para o uso do ASP para transferir dados de formato HTML para Excel Aprenda a criar uma página ASP para transmitir dados HTML para uma planilha EXECL e exibir a planilha EXECL no IE. Até agora, existem várias maneiras de criar tabelas de dados do Excel usando a tecnologia ASP, e você também pode usar grupos VBA do Excel 8.0 VBA do lado do servidor