在哪里放javascript以及如何处理事件

Mic*_*caj 7 javascript php frameworks

很长一段时间,我正在寻找以下的实用(可重用,清晰,可更新,......)解决方案:

  • 我开发了自己的PHP框架,它使用'小部件' - UI的可重用部分.可以通过ajax请求更新窗口小部件.
  • 每个小部件都是一个简单的PHP类,其方法名为Content(),用于生成HTML输出.
  • 几乎所有小部件都包含JavaScript.它用于处理该特定小部件中的事件.

虽然一切正常,但我对JS的使用方式并不满意.以下是一些主要问题:

  • 使用Ajax刷新窗口小部件时,所有窗口小部件数据(HTML)与所有Javascript(BAD)一起传输到客户端(OK)(但在99%的情况下,JS不会更改)
  • 最终的HTML标记与javascript调用和事件处理程序混合在一起.
  • 很难管理所有嵌入式JS
  • 这种方式不能通过浏览器缓存JS

我想问你的是你在更大的PHP框架中使用Javascript的意见/建议.

最近我考虑在widget类中编写一个单独的方法(比如函数Script()),我将把所有的JS代码放在一起,然后遍历所有的小部件,把所有的JS代码放在一个.js中.将在其中一个小部件发生更改之前使用的文件.您如何看待这种方法?

谢谢!

Cra*_*ray 1

我会将不同小部件使用的 javascript 文件放在不同的地图中并静态加载它们(必须更快,如果您有正确的设置,还可以加上自动浏览器缓存)。

然后,根据您的框架的动态程度,我将制作某种 loader-javascript,它会自动获取并仅加载当前加载到页面上的小部件所需的 JS 文件。您需要在脚本中打印的可能只是某种 require_js_file 函数,它将告诉加载器此小部件使用哪个 javascript,并且加载器将获取它,但前提是它尚未加载(例如,如果此不是该小部件的第一次运行)。