闭包编译器高级和服务器端注入Javascript
评估 或者通过名称传递对象并访问属性 如果有办法将一个变量注释为未知变量,即使它被定义为字符串,或者诱使编译器这样想,那就太好了 也许更好的方法是为处理所有这些事情的嵌入式Javascript创建一个预处理/后处理脚本 编辑: 搜索内联变量可能会很繁琐,甚至更糟糕的是,搜索嵌入内联脚本中的更复杂的代码片段和html标记中的onclick事件 推荐的最佳方法是什么?闭包编译器高级和服务器端注入Javascript,javascript,google-closure-compiler,Javascript,Google Closure Compiler,评估 或者通过名称传递对象并访问属性 如果有办法将一个变量注释为未知变量,即使它被定义为字符串,或者诱使编译器这样想,那就太好了 也许更好的方法是为处理所有这些事情的嵌入式Javascript创建一个预处理/后处理脚本 编辑: 搜索内联变量可能会很繁琐,甚至更糟糕的是,搜索嵌入内联脚本中的更复杂的代码片段和html标记中的onclick事件 推荐的最佳方法是什么? 如果可能,我希望能够内联字符串,以便输出 function exposedFunction(myVariable){/* stuff
如果可能,我希望能够内联字符串,以便输出
function exposedFunction(myVariable){/* stuff */}
if(“=”Y”)剂量测量;还有别的吗
但如果不可能,是否建议创建一个构建前/构建后工具,只使用全局变量,使用函数,或者只将其视为情景
谷歌自己似乎在某些地方向其内联Javascript注入了内联变量。
也许他们有一个构建前/构建后工具
什么是我在选择方法时应该考虑的主要因素?我只能想到时间/精力的投资。
这仅仅是一个努力优化的例子;如果我只是提取这些东西并将它们放入全局变量? 如果直接使用在字符串中,则必须担心编译器是否会考虑它们常量: “”==“” 将在编译时进行计算。类似地,“if(“”)…”等同于“if(true)…”,因此一般来说,直接将它们用于替换是不明智的 对代码进行预处理,以便以对编译安全的方式替换替换,这似乎是合理的: “+eval(”)+”
但是,如果使用源地图,这是一个棘手的问题。这里似乎没有直接的问题。此外,您遇到的问题并不明显-您提供了几种可能的技术的示例,但没有提到它们不适用于您的原因。我更新了一个editNote:我愿意接受一个自动化的预/后处理工具,它实现了所需的大部分功能。这将有效地减少时间/精力的投入。如果你以不同的方式处理问题,你会有更好的结果。看见
myVariable = window["myVariable"];
myVariable = eval('"<%=myVar%>"');
function exposedFunction(myVariable){/* stuff */}
if("<%=myVar%>"=="Y")doSomething;else doSoemthingElse