javascript就不能正常工作的

2021/10/30 20:16:34

本文主要是介绍javascript就不能正常工作的,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

他们说,即使关闭了javascript,您的站点也应该工作。我强烈反对。首先,在没有javascript的情况下,让一个功能强大的站点工作是很费劲的。您已经构建了使用Ajax、酷控件和大量对话框的东西。你应该为那些没有javascript的2%的人构建一个全新的版本吗?这种努力是不值得的。甚至对Facebook、YouTube和Twitter来说也是如此--没有javascript,它们都不起作用。

所以,当我开发一个没有javascript就不能正常工作的web应用程序时(比,我非常清楚这一点,这是有目的的--节省不必要的工作,而不是提供糟糕的UI版本。当然,完全忽略javascript可能被关闭的事实太片面了。因此:

  • 使基本主页和注册页面在没有javascript的情况下是可行的。为了安全起见,有些用户(比如我)用加载项阻止脚本。如果当我的javascript关闭时,您的主页是空白的,我会犹豫是否为它启用脚本。但如果我看到这是一项值得信赖的服务,我可能会去注册。当然,Ajax验证现在是必须的,但是无论如何您应该有服务器端的验证,所以让您的注册表单工作起来。
  • 显示一条消息“此站点需要JavaScript才能正常工作”。这就是许多网站(包括YouTube、堆栈溢出和我前面提到的Welshare)所做的。它很容易被<noscript>标记处理。
  • 内容密集的网站通常不那么依赖javascript。他们可能会使用它进行分页或注释,但这不是他们的主要功能,它只是一个“额外的”。这样的小功能是可以支持的,它几乎不需要花费(无论如何,由于SEO的原因,你的第二页都是可用的)。

除此之外,绝大多数严重依赖javascript的服务(因为它们比站点更多应用程序)不应该费心制作javascript-off版本。

这应该是一个简单的区别,但我一直在回答大量类似的关于Stackflow的问题,而且人们经常误解这个问题。

https://www.jianshu.com/p/68b0439d84c6

那么,什么是类路径?应用程序所需的所有类(以及包含类的JAR)的集合。但是有两个,或者实际上有三个不同的类路径:

  • 编译时类路径。包含在IDE中添加的类(假设使用IDE),以便编译代码。换句话说,这是传递给“javac”的类路径(尽管您可能使用另一个编译器)。
  • 运行时类路径。包含在应用程序运行时使用的类。这是传递给“java”可执行文件的类路径。对于Web应用程序,这是/lib文件夹,加上应用服务器/servlet容器提供的任何其他JAR
  • 测试类路径--这也是一种运行时类路径,但在运行测试时使用它。测试不会在应用程序服务器/servlet容器中运行,因此它们的类路径有点不同。

Maven定义了依赖范围,这些作用域对于解释不同类型的类路径之间的差异非常有用。阅每个范围。

https://m.imdb.cn/title/tt9418812/review_125

许多人认为,如果他们成功地使用给定的JAR文件编译了应用程序,这意味着应用程序将运行良好。但事实并非如此--您需要的JAR与

https://movie.douban.com/doulist/145585807/

编译应用程序时使用的JAR相同,以便在运行时类路径中显示。不一定是所有的,也不一定只有他们。有几个例子:

  • 在编译时类路径上使用给定的库编译代码,但忘记将其添加到运行时类路径。JVM抛出NoClasDefFoundError,这意味着缺少一个类,这是编译代码时存在的。此错误清楚地表明,您在运行时类路径上丢失了编译时类路径上的JAR文件。您所依赖的一个JAR也可能依赖于一个您在任何地方都没有的JAR。这就是为什么库(必须)声明了它们的依赖项,以便知道在运行时类路径上放置哪个JAR
  • 容器(servlet容器、应用服务器)有一些内置的库。通常,您不能覆盖内置依赖项,即使可以,它也需要额外的配置。例如,您使用Tomcat,它提供Servlet-api.jar。在编译时类路径上使用Servlet-api.jar编译应用程序,以便在类中使用HttpServletRequest,但不要将其包含在Web-INF/lib文件夹中,因为tomcat将自己的JAR放在运行时类路径中。如果复制依赖项,可能会得到奇怪的结果,因为类加载器会感到困惑。
  • 您正在使用的框架(假设Spring-MVC)依赖于另一个库来执行JSON序列化(通常是Jackson)。实际上,在编译时类路径中并不需要Jackson,因为您没有引用任何它的类,甚至没有引用它们的Spring类。但是Spring在内部需要Jackson,因此Jackson JAR必须位于Web-INF/lib(运行时类路径)中,才能使JSON序列化工作。

当您考虑编译时常量和版本不匹配时,情况可能更复杂,但总的要点是:用于编译和运行应用程序的类路径是不同的,您应该意识到这一点。



这篇关于javascript就不能正常工作的的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程