javascript jquery jquery-plugins requirejs

javascript - ¿Cómo se usa RequireJS en una aplicación.NET?



browserify (3)

Se llama volver a factorizar ... v. El proceso a veces doloroso de reescribir una solución que anteriormente no estaba estructurada en una bien diseñada.

Tengo la siguiente estructura de carpetas:

-> personalizado

  • gráficos
    • ... archivos JS
  • mejorar
    • ... archivos JS
  • general
    • ... archivos JS

-> lib

  • jquery
  • jquery.ui

jquery-1.7.2.js
requirejs-1.0.7.js
order.js

Tengo una aplicación .NET con muchos archivos de control ascx que hacen referencia a los archivos JS de la manera tradicional al llamar un archivo JS dentro de una etiqueta de script y luego llamar a alguna función desde ese archivo.

La pregunta es cómo debería (o puedo) implementar Require JS para poder:

1) llame a los archivos JS Last después de que se hayan cargado todas las imágenes, css y html, y ...

2) use el concepto de AMD de modulizar el código

Es importante señalar que dentro de cada archivo aspx hay hasta 5 archivos ascx y algunos tienen controles ascx contenidos dentro. Muchos de los archivos ascx tienen JavaScript incorporado dentro de ellos, y muchas de las páginas .master también tienen referencias de archivos JavaScript.

No puedo cambiar la estructura del sitio web (ya que el sitio es bastante grande), así que necesito encontrar una solución.

Gracias



Esto es más que una respuesta para llamar a "InvokeScript ()" desde un control de navegador web .NET. Pero Google me llevó hasta aquí y alguien podría encontrarlo útil.

En primer lugar, defina su nuevo módulo AMD como lo haría normalmente. Pon lo que llames "InvokeScript ()" con una función dentro de este módulo:

define (... { var mySpecialHandler = function() { // do stuff }; return { mySpecialHandler: mySpecialHandler } });

Luego, cuando llegue a usarlo, use el espacio de nombres global que finalmente se configura cuando se carga el módulo:

require([''app''], function (app) { window.mySpecialHandler = app.mySpecialHandler; });