【问题标题】:How does a browser require a .js file?浏览器如何需要 .js 文件?
【发布时间】:2011-08-17 13:42:18
【问题描述】:

我正在为 android 开发一个 Web 服务器,但我在使用外部 javascript 文件 (.js) 时遇到了一些问题。 使用外部 css 可以正常工作,因为它接收 css 文件的 TCP,然后服务器将其作为普通文件发送。 使用 javascript 文件时,它不会收到任何 GET/POST 请求。

我可以包含任何标签来告诉浏览器获取 js 文件吗?

此时我只尝试了这个:<script type="text/javascript" src="js/javascript.js"></script>

编辑: 我刚刚添加了“text/javascript”内容类型,但似乎没有任何改变。如果我直接打开 http://ip/js/javascript.js 我会得到 javascript.js 的文本。然后,如果我回到我的 index.html,所有 javascript 函数都可以工作......为什么?

编辑 2: 我的服务器(此时)不使用线程..对于它发送页面并重新启动连接的每个请求。这可能是问题? 但是,在这种情况下,它应该“起作用”......不是吗?

编辑 3我确认可能是线程问题: 如果在 html 文件中我反转了 javascript 和 CSS 标记,则 javascript 有效,css 无效。你怎么看?

【问题讨论】:

  • 确保您的服务器为 JS 文件发送正确的 Mime 类型
  • 当你直接从你的服务器请求 JS 文件时会发生什么:localhost/js/javascript.js
  • 您必须有此 HTTP 标头 Content-Type: text/javascript,因为您希望在 script 标记中输入该类型。
  • 这肯定会让浏览器尝试GET指定的JS文件。使用例如Firebug 看看当您在桌面浏览器中请求主文档时会发生什么。
  • @Gustav Firebug 告诉我一个函数不存在。这就是它无法查看javascript文件的原因

标签: javascript android sockets webserver


【解决方案1】:

确保您没有在客户端缓存文件。如果您在页面中链接了 js 文件,它将始终尝试下载它,但缓存除外。

【讨论】:

  • 我总是在尝试之前清理缓存。从网络服务器我可以看到所有请求.. 我收到一个页面请求,favicon.ico,css,但没有一个请求 javascript.js
  • 尝试更改html页面中的js文件名,然后看看服务器上是否收到任何东西。
  • 我在index.html中改了名字,但是没有消息...我的服务器(此时)不使用线程。。这可能是问题吗??
  • 啊线程!您使用的是什么服务器端技术?你看过 node.js 吗? nodejs.org
  • 显而易见的答案是实现线程——但为了让任何人帮助你,你至少必须告诉我们你目前是如何实现这个网络服务器的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
相关资源
最近更新 更多