not node javascript requirejs

javascript - node - ¿Puede alguien explicar la sintaxis involucrada en este ejemplo de require.js?



requirejs cdn (2)

  1. La sintaxis de require([...], function(args) { } dice "carga esta lista de módulos, y una vez que estén todos cargados, llama a esta función con los valores de retorno de esos módulos como argumentos" . los corchetes son una matriz de rutas a un archivo de script (menos el .js) o una ID de módulo asignada usando la sección de rutas de require.config . Los argumentos de la función de devolución de llamada corresponden a las rutas / módulos en la matriz, pero no Todos los módulos devuelven un valor útil, como notó en su próxima pregunta ...

  2. Agregar un argumento para FeatureLayer no funciona porque no puede omitir argumentos. Pero tenga en cuenta que muchos módulos en realidad no devuelven un valor destinado a ser utilizado. Verá esto mucho con los complementos de jQuery, donde la carga del módulo simplemente registra el complemento con jQuery pero no devuelve un valor a la persona que llama. No sé ESRI, pero desde el fragmento de código parece que cargar FeatureLayer simplemente agrega FeatureLayer al objeto global esri.layers.

  3. La sintaxis del signo de exclamación está reservada para los plugins . Normalmente, habrá algo más después del signo de exclamación que indica el recurso que cargaría el complemento, por ejemplo, text!myTemplate.html , ¡pero en el caso de domReady! el complemento existe solo como una forma de esperar hasta que DOM se cargue antes de invocar la función de devolución de llamada, por lo que nada debe seguir el signo de exclamación.

  4. Las listas de recomendaciones de recursos externos están fuera de tema para StackOverflow, pero aquí hay una que me pareció útil para obtener los conceptos básicos: http://aaronhardy.com/javascript/javascript-architecture-requirejs-dependency-management/

Espero que esta pregunta no sea demasiado amplia, pero hay MUCHA sintaxis desconocida en este ejemplo particular de require.js / ESRI, y espero que alguien me pueda explicar algo de esto.

Primero, este código funciona (es decir, hace lo que espero que haga): crea un mapa base y agrega un FeatureLayer extraído de un servicio de mapas. Es una versión reducida de un ejemplo de la página de la API de Javascript de ESRI. Aquí está el código:

var map; var featureLayer; require(["esri/map", "dojo/domReady!", "esri/layers/FeatureLayer"], function (Map) { map = new Map("map", { basemap: "topo", center: [-100.195, 39.567], // long, lat zoom: 4 }); featureLayer = new esri.layers.FeatureLayer( "http://my-server-url.com/arcgis/rest/services/Projects/MapServer/0", { mode: esri.layers.FeatureLayer.MODE_ONDEMAND } ); map.addLayer(featureLayer); });

Ahora para las preguntas particulares:

  1. ¿Qué es esto requiere ([...], función (args) {} haciendo sintaxis? Ni siquiera sé cómo leer esto. ¿Es una función llamada a require.js? ¿Qué va entre corchetes? ¿Qué es los argumentos de la función?

  2. De otros ejemplos, parece que normalmente debería haber un argumento de función por incluir en la llamada de require.js. Pero aquí, si agrego un argumento para FeatureLayer, no funciona.

  3. El "dojo / domReady!" include nunca parece tener un argumento correspondiente en ningún ejemplo. ¿Está esto relacionado con el signo de exclamación? ¿Qué significa el signo de exclamación?

  4. ¿Alguien puede indicarme una referencia UTIL ÚTIL? El sitio web requirejs.org se parece más a una especificación técnica que a un manual de usuario. Y el sitio web de ESRI parece suponer que usted sabe cómo usarlo requiere.

Y sí, he estado buscando en Google: el problema es que Google no es muy bueno en la búsqueda de preguntas de sintaxis de computadora, ya que elimina la puntuación, y porque "requiere sintaxis de javascript" y similares para los términos de búsqueda de mierda (demasiado amplios).


Esta sección de los documentos requeridos describe lo que significa el signo de exclamación en el contexto de domReady : http://requirejs.org/docs/api.html#pageload

Dado que DOM ready es una necesidad común de la aplicación, lo ideal sería evitar las funciones anidadas en la API anterior. El módulo domReady también implementa la API del complemento del cargador, por lo que puede usar la sintaxis del complemento del cargador (observe que en la dependencia domReady) para forzar la función de devolución de llamada require () para esperar a que el DOM esté listo antes de ejecutarse.