Recomendado: use ASP para hacer gráficos circulares, gráficos de barras, etc. En nuestro trabajo, a menudo necesitamos convertir datos en gráficos de barras, gráficos circulares, etc. para facilitar y análisis intuitivos de datos. Aquí te presentaré un componente que fabrica gráficos circulares y gráficos de barras en ASP: csdrawgraph, csdgt.zip. Debido a que es un componente, necesitamos usar REGSV antes de usarlo.
Programación orientada a objetos
A medida que aumenta la complejidad del diseño del programa, los métodos de programación estructurados no son suficientes. La razón fundamental para el uso insuficiente es que es inconveniente reutilizar el código. Nació un método orientado a objetos e implementa funciones de reutilización de código relativamente completas a través de la herencia. A menudo se les hace a muchos estudiantes una pregunta durante las entrevistas al solicitar trabajos. Hablemos sobre qué es la programación orientada a objetos. Los estudiantes están sin palabras y vuelven a preguntarme cómo responder a esta pregunta. Le dije que solo una palabra es suficiente. La programación orientada a objetos es la encapsulación de datos; La programación de paradigmas (plantillas) es la encapsulación de algoritmos. Más tarde, cuando un estudiante se encontró con este problema, lo respondió simplemente con una oración simple, y la otra parte miró al estudiante con admiración (el estudiante me dijo con orgullo más tarde). ¿Por qué eso? Porque solo a través de una experiencia y práctica exhaustiva se puede extraer esta esencia.
Los métodos e ideas de diseño orientados a objetos se propusieron en realidad a principios de la década de 1970. El propósito es obligar al programa a manipular datos a través de funciones. De esta manera, se implementa la encapsulación de datos y se puede evitar el error causado por cualquier código en el método de diseño anterior. Es muy difícil encontrar y modificar este error. Entonces puede decir que incluso si no uso orientado a objetos, cuando quiero acceder a ciertos datos, solo uso la función de llamada para acceder a él, ¿no estaría bien? Sí, está bien, pero no es obligatorio. La gente es perezosa. Cuando quiero agregar 1 a I, ¿por qué tengo que llamar a una función? Olvídalo, es más fácil ahorrar problemas. Jaja, debido a esta pereza, es difícil de atrapar cuando el programa tiene un error. Orientado a objetos es obligatorio, y resuelve su problema de pereza de la etapa de compilación.
Casualmente, el pensamiento orientado a objetos es realmente consistente con el tratamiento de problemas en nuestra vida diaria. Por ejemplo, planeo tirar una taza de té, ¿cómo puedo tirarla? ¡Es demasiado simple, recoge la taza de té, camina hacia el bote de basura y tíralo! Presta atención a analizar este proceso. Primero seleccionamos un objeto --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Las acciones que cada objeto puede aplicarse a ella son limitadas: un técup se puede arrojar, aplastar, usarse para beber agua, golpear para hacer sonidos ...;;;;;;;;; Se puede escribir un pedazo de papel, desgarrar, quemarse ... es decir, una vez que se determina un objeto, el método también se determina. Así es nuestra vida diaria. Sin embargo, cuando piensa en nuestra programación y operaciones de computadora, este no es el caso. Tome la operación DOS como ejemplo. Quiero eliminar un archivo por: c:> del nombre del archivo <Enter> en el indicador de DOS. Presta atención a este proceso. Las acciones están al frente (DEL) y los objetos están en la parte posterior (nombre del archivo), y los métodos orientados a objetos están en el orden opuesto. Entonces, es solo una cuestión de orden, ¿qué impacto tendrá? Jaja, debes haber visto este fenómeno: el archivo no encontrado. Ah ~~~, me equivoqué, me equivoqué, escribí una letra en el nombre del archivo incorrecto, así que vuelvo a entrar: c:> del nombre del archivo 2 <Enter>. Desafortunadamente, vuelve a suceder, informe de la computadora: solo lee el archivo. Jaja, dolor :). Entonces, la operación de DOS realmente viola nuestros hábitos diarios (por supuesto, nadie ha planteado ninguna objeción antes), pero ahora debido al uso del diseño orientado a objetos, estos problemas se resuelven en el momento de la compilación, no en tiempo de ejecución. obj.fun (), para esta declaración, ya sea un objeto o una función, si hay algún problema con su aporte, se informará durante la compilación, para que pueda modificarlo, en lugar de cometer errores durante la ejecución, lo que le hará atrapar errores en todas partes.
Al mismo tiempo, orientado a objetos puede resolver el problema de la reutilización del código: la herencia. Solía escribir una clase de perros, con atributos (variables): peludo, 4 piernas, una cola elevada (la que tiene una cola caída es un lobo), una nariz muy sensible y le gusta comer carne y huesos ... los métodos incluyen (función): capaz de correr, oler, ladrar ... si atrapa ratas, las personas lo llamarán meddling. Ok, el tipo de perro ha sido escrito. Pero en mi vida real, el perro que tengo es muy similar al perro que escribí antes, con solo un poco de diferencia, es decir, mi perro, es: rizado y largo, con una nariz pequeña, una boca pequeña ... así que obtuve un nuevo tipo llamado pug y agregué nuevas características al perro. Ok, el programa está terminado y el código correcto del anterior se reutiliza: este es el beneficio de la programación orientada a objetos. Mi éxito es solo pararse sobre los hombros del gigante. Por supuesto, si usa VC, el código que más reutiliza es la biblioteca de clases MFC.
===========================================================================================================================================
OK, luego vea cómo usamos ASP.
Todos generalmente usan el lenguaje de secuencias de comandos predeterminado de IIS VBScript como el lenguaje de ejecución del lado del servidor de ASP. Al principio, el script VBS y HTML se mezclan básicamente para lograr ciertas funciones. Por ejemplo, debe mostrar los últimos 5 registros en la página actual, eso es todo.
1. Defina la conexión a la base de datos primero, como:
| El siguiente es el contenido citado: db_path = ../database/cnbruce2005.mdb Establecer conn = server.createObject (ADODB.Connection) Connstr = Provider = Microsoft.Jet.OLEDB.4.0; Data Source = & Server.Mappath (db_path) Conn.open Connstr |
2. Luego cree una recopilación de registros de la base de datos para extraer información relevante
| El siguiente es el contenido citado: Establecer rs = server.createObject (ADODB.RecordSet) SQL = Seleccione Top 5 * de [Noticias] Orden por N_ID DESC Rs.open SQL, Conn, 1,1 |
3. Finalmente, muestre el método de los datos a través del bucle
| El siguiente es el contenido citado: haz mientras no rs.eof Response.Write RS (n_title) Rs.Movenext bucle 'También hay operaciones finales de cierre y lanzamiento rs. establecer RS = nada |
Entonces, aquí en Response.Write RS (N_Title), para el diseño web final, se estima que algunos otros elementos de etiqueta HTML deben agregarse antes y después. Entonces, naturalmente, los scripts de VBS y HTML se mezclan.
Veamoslo de nuevo. Si hay muchas páginas que necesitan mostrar estos 5 registros, ¿debe configurar cada página así? Por supuesto, lo más importante es que el diseño de cada página es diferente. Entonces esta es la repetición. Repite dónde? ¿No puedes repetirlo?
1. Para las conexiones de la base de datos, un archivo de conexión de base de datos conn.asp está directamente establecido, y el contenido es el anterior.
2. Por lo tanto, siempre que necesite usar la base de datos y necesite establecer una conexión, puede incluir directamente el archivo de conexión de la base de datos referenciado.
<!-#include file = conn.asp->
Entonces, ¿qué repeticiones se guardan anteriormente? Repita cada conexión de base de datos. Esto es antiduplicación para algunos códigos comunes. Echemos un vistazo. Si quiero que esta página muestre 5 piezas y esa página para mostrar 6 piezas, ¿qué debo hacer? Obviamente, esto solo puede ser una modificación simple de la instrucción SQL en la página actual, como la modificación original de los 5 principales a los 6.
Ok, sigue mirando, ¿hay repeticiones? Sí, excepto por las diferentes definiciones de consulta SQL, el resto son todos duplicados.
Entonces, continúe pensando en una solución: ¿puede definir la cantidad de elementos extraídos usted mismo? Solo quiero extraer solo unos pocos elementos, pero el programa solo necesita escribir uno. Luego, en este momento, la función será útil. Por ejemplo, defino una función como esta:
| El siguiente es el contenido citado: Función TopNews (TNUM) Establecer rs = server.createObject (ADODB.RecordSet) SQL = Seleccione Top & Tnum & * de [Noticias] Orden por N_ID DESC Rs.open SQL, Conn, 1,1 haz mientras no rs.eof Response.Write RS (n_title) Rs.Movenext bucle rs. establecer RS = nada Función final |
Luego, puede usar TopNews (5) o TopNews (6) para completar la necesidad
... A primera vista, parece que ASP usa funciones y finalmente se completa. Debido a que la función del programa principal se convierte en un módulo de función, debe llamarlo directamente al usar esta función en la página de primer plano. Si es necesario, modifique el valor del parámetro de función para que sea un final perfecto/.
Entonces, ¿por qué se introdujeron clases en ASP? ¿Qué es este tipo? ¿Y cómo aplicarlo?
En el lenguaje de secuencias de comandos ASP, VBScript tiene una palabra clave de clase, que puede usarse para declarar una clase personalizada. Por ejemplo
| El siguiente es el contenido citado: Nombre de clase declaraciones Clase final |
Aquí, los miembros públicos o privados pueden declararse en declaraciones, incluidas funciones, miembros y atributos.
JavaScript utiliza una función para declarar una clase y luego define las propiedades en la función a través de esto. Prototipo y métodos this.func define.
Cuál es simple de elegir cuál. Después de definir el nombre de la clase, es decir, la clase, ¿qué se puede hacer aquí?
El primero. Documentación de MSDN: en Visual Basic 6.0, al crear y destruir un módulo de clase, el módulo de clase usa los eventos inicializados y terminados para realizar todas las operaciones necesarias. Cuando se encuentra un objeto por primera vez después de una nueva declaración, se plantea el evento de inicialización y cuando se libera la última referencia al objeto, el evento terminado se plantea inmediatamente. Sin embargo, estos métodos de eventos pueden llamarse directamente en cualquier momento durante la ejecución.
Así que a menudo veo ejemplos como este:
Clase CNBRUCE 'Declarar una clase llamada CNBRUCE
| El siguiente es el contenido citado: Privado Sub class_initialize privado cnrose = mi nombre es cnrose. Final Sub class_terminate () privado () Final Clase final |
Mira, esta es una inicialización.
Además, hay métodos Lett and Get en la clase ASP. Por ejemplo, agregue entre la clase CNBruce del código anterior ... Clase final:
| El siguiente es el contenido citado: Propiedad pública Obtener YNAME Yname = cnrose Propiedad final |
Eso es convertirse en:
Clase CNBRUCE 'Declarar una clase llamada CNBRUCE
| El siguiente es el contenido citado: Privado Sub class_initialize privado cnrose = mi nombre es cnrose. Final Sub class_terminate () privado () Final Propiedad pública Obtener YNAME Yname = cnrose Propiedad final Clase final |
Entonces, cómo extraer el valor, por ejemplo
| El siguiente es el contenido citado: Establecer AAA = nuevo cnbruce Respuesta.WRITE AAA.YNAME |
Tenga en cuenta que AAA.Yname ya se siente un poco. AAA es un objeto definido como la clase CNBruce. La salida final se muestra como el valor de obtención de yname en el objeto de esta clase. Su contenido de valor es el valor de la variable Cnrose, y el valor se ha inicializado. Por lo tanto, el resultado final es que mi nombre es Cnrose.
Esto es Get, que extrae directamente el interior de la clase ya encapsulada, entonces, ¿qué pasa con Let? Es decir, operaciones de acceso interactivo externas a las clases. Por ejemplo, ahora aplico el valor definido externamente a la clase. Es decir, primero defina:
| El siguiente es el contenido citado: Propiedad pública Sea mname (NNN) cnrose = nnn propiedad final |
Su significado es muy simple. El valor del parámetro nnn se asignará a la variable cnrose de acuerdo con diferentes valores externos. Entonces, el programa de combinación OK, es decir, el contenido de la variable CNROSe mostrada, no es el contenido inicializado, sino el valor incierto aplicado externamente por let. Entonces cómo aplicar LET.
aaa.mname = sdasdasd
Simplemente defina el valor directamente. Entonces ahora mira todo el programa:
| El siguiente es el contenido citado: <% Clase CNBRUCE Privado Sub class_initialize privado cnrose = mi nombre es cnrose. Final Propiedad pública Obtener YNAME Yname = cnrose Propiedad final Propiedad pública Sea mname (NNN) cnrose = nnn propiedad final Clase final Establecer AAA = nuevo cnbruce aaa.mname = jajajos Respuesta.WRITE AAA.YNAME %> |
Aunque el valor de AAA.Mname se define como Hahohoho, de acuerdo con la propiedad pública deja Mname (NNN), su valor es para la variable Cnrose. Cuando así sale aaa.yname, de acuerdo con la propiedad pública obtenga Yname, no es sorprendente que el valor de los resultados sea. /
En cuanto a los programas funcionales, se definen como función de función o subrutina sub en la clase.
Entonces, en general, es solo un envoltorio de funciones, y es fácil escribir y verse bien al aplicar (nombre de clase directo, método, nombre de clase, atributo -_-!), Pero no espere que tenga servicios de pensamiento orientados a objetos como Java o .NET.
El tiempo es limitado, y el comienzo y el final son solo un poco.
Compartir: Consejos para usar ASP para transferir los datos de formato HTML a Excel Aprenda cómo crear una página ASP para transmitir datos HTML a una hoja de cálculo EXECL y mostrar la hoja de cálculo EXECL en IE. Hasta ahora, hay varias formas de crear tablas de datos de Excel utilizando la tecnología ASP, y también puede usar grupos VBA del lado del lado del servidor 8.0