Ho eseguito il rollover di tutti i miei script e modelli in un unico file .js per diversi progetti. Io uso uno strumento di compilazione basato su Java, formica, per concatenare e gestire vari script di elaborazione per il mio js.
Il problema più grande con la memorizzazione di modelli di grandi dimensioni in variabili javascript è la mancanza di stringhe multilinea di javascript. Mi occupo di questo scrivendo i miei file con un pitone come triple-citazione sintassi:
var templateVariable = '''
<div>
<div></div>
</div>
'''
Ho quindi eseguito questo custom-sintassi file javascript se lo script python riportato qui di seguito, che si trasforma in a JavaScript legale:
#!/usr/bin/env python
# encoding: utf-8
"""
untitled.py
Created by Morgan Packard on 2009-08-24.
Copyright (c) 2009 __MyCompanyName__. All rights reserved.
"""
import sys
import os
def main():
f = open(sys.argv[1], 'r')
contents = f.read()
f.close
split = contents.split("'''")
print "split length: " + str(len(split))
processed = ""
for i in range(0, len(split)):
chunk = split[i]
if i % 2 == 1:
processedChunk = ""
for i,line in enumerate(chunk.split("\n")):
if i != 0:
processedChunk = processedChunk + "+ "
processedChunk = processedChunk + "\"" + line.strip().replace("\"", "\\\"").replace('\'', '\\\'') + "\"" + "\n"
chunk = processedChunk
processed = processed + chunk
f = open(sys.argv[1], 'w')
f.write(processed)
f.close()
if __name__ == '__main__':
main()
In questo modo, posso codificare i modelli in html più o meno puro e distribuirli, insieme al codice dell'applicazione, all'interno di un singolo file .js.
https://github.com/leshill/handlebars_assets –