所以我一直在做socket.IO,我从聊天示例开始。我的聊天服务现在非常复杂,但它基于原始教程。在教程中,他们提出了
import scala.reflect.runtime.universe._
sealed abstract class Codes(val list: List[String])
object UVWCodes extends Codes(List("U", "V", "W"))
object XYZCodes extends Codes(List("X", "Y", "Z"))
object FindObjectsByReflection {
def main(args: Array[String]) = {
val c = typeOf[Codes].typeSymbol.asClass.knownDirectSubclasses
c.foreach { x =>
val d = getObjectInstance(x.fullName).asInstanceOf[Codes]
println(d.list)
}
}
def getObjectInstance(clsName: String): AnyRef = {
val mirror = runtimeMirror(getClass.getClassLoader)
val module = mirror.staticModule(clsName)
mirror.reflectModule(module).instance.asInstanceOf[AnyRef]
}
}
在body标签的末尾。出于组织原因,我想将脚本标记放在头部,但是当我这样做时,我的代码不再有效。我很好奇为什么会发生这种情况,即使没有可能的解决方案。
答案 0 :(得分:0)
您可以在HTML中的任何位置放置<script>
标记(在合理范围内)。将<script>
标记放在<head>
中可能遇到的唯一问题是它们会先加载。 HTML的工作方式是它按顺序遍历代码,这意味着如果你尝试在你的代码中引用代码中的HTML代码并且你的JavaScript首先出现,你会得到一个错误,它无法找到你的元素引用。
为了避免这种情况,JS经常被放在最后。如果由于某种原因你需要<head>
中的JS,你有两个选择:
<body onload="script();">
等内置功能。此示例仅在正文加载后才运行script()
内的代码。如果这不起作用,您可以使用其他类似的功能,例如document.onload = function ...
或jQuery&#39; $( document ).ready()
希望这有帮助!