问题标签 [autoload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
3010 浏览

如何处理在 PHP 中包含所需的类

我想知道处理必须在我的 PHP 脚本中“包含”这么多文件的问题的最佳实践是什么,以确保我的脚本可以访问我需要使用的所有类。

目前,我只是使用include_once来包含我直接访问的类。每一个都是include_once他们访问的类。

我已经研究过使用该__autoload功能,但如果您打算将类文件组织在目录树中,帽子似乎效果不佳。如果你这样做了,看起来你最终会遍历目录树,直到找到你正在寻找的类。 此外,我不确定这如何影响不同名称空间中具有相同名称的类。

有没有更简单的方法来处理这个?

或者 PHP 只是不适合具有许多不同对象的“企业”类型的应用程序,这些对象都位于不同的文件中,这些文件可以位于许多不同的目录中。

0 投票
11 回答
1399 浏览

__autoload 的最佳解决方案

随着我们的 PHP5 OO 应用程序的增长(在大小和流量方面),我们决定重新审视 __autoload() 策略。

我们总是通过它包含的类定义来命名文件,因此类 Customer 将包含在 Customer.php 中。我们过去常常列出文件可能存在的目录,直到找到正确的 .php 文件。

这是非常低效的,因为您可能会遍历许多您不需要的目录,并且对每个请求都这样做(因此,会进行大量的 stat() 调用)。

我想到的解决方案...

- 使用指定目录名称的命名约定(类似于 PEAR)。缺点:扩展性不是很大,导致类名很糟糕。

- 提出某种预先构建的位置数组(propel 为其 __autoload 执行此操作)。缺点:在部署新代码之前需要重新构建。

-“即时”构建数组并缓存它。这似乎是最好的解决方案,因为它允许任何您想要的类名和目录结构,并且在将新文件添加到列表中时非常灵活。问题是:将其存储在哪里以及删除/移动的文件如何。对于存储,我们选择了 APC,因为它没有磁盘 I/O 开销。关于文件删除,没关系,因为您可能不想在任何地方要求它们。至于移动……这还没有解决(我们忽略它,因为从历史上看它对我们来说并不经常发生)。

还有其他解决方案吗?

0 投票
2 回答
929 浏览

使 Flash 电影自动加载

我想在我的页面上嵌入一个 Flash 电影,但我需要它从一开始就自动加载,而不仅仅是当我通过页面到达它时。我的意思是,我的页面很长,而闪光灯大约在中间。它播放有声音的动画,我希望它自己启动,而不仅仅是当我向下滚动到它时。这可能吗 ?

谢谢

0 投票
6 回答
4916 浏览

为 PHP 导入包或自动加载?

对于在 PHP 项目中包含文件,您会推荐什么解决方案?

  1. 不需要手动调用 require/include 函数 - 一切都通过自动加载函数加载
  2. 需要时导入包。

这是包导入API:

在此函数声明中,您可以用点(包层次结构分隔符)分解字符串,循环遍历特定包(文件夹)中的文件以仅包含其中一个或全部,如果在字符串末尾找到星号符号,例如('template.arras.*')。

我在包导入方法中看到的好处之一是它可以迫使您使用更好的对象分解和类分组。

我在自动加载方法中看到的缺点之一是自动加载功能可能变得非常大并且不是很明显/可读。

你怎么看待这件事?

  • 您可以在每种方法中说出哪些优点/缺点?
  • 我怎样才能找到项目的最佳解决方案?
  • 如果使用包管理,我如何知道是否会有任何性能问题?
0 投票
5 回答
2195 浏览

具有大写和小写类名的自动加载器

我在 php 中使用这个类进行自动加载。 http://pastebin.com/m75f95c3b

但是当我在某个地方

我有一个名为 foo.class.php 的文件,它找不到该类。但是当我将文件名更改为 Foo.class.php 时,它会找到该类。

我正在尝试向我的类添加一些功能,以便无论文件名是否以大写字母开头,都可以始终找到文件。但到目前为止我还没有成功。

任何人?

0 投票
1 回答
1512 浏览

如何使用谷歌地图的“自动加载”功能?

我开始阅读有关自动加载谷歌地图的信息:

http://code.google.com/apis/ajax/documentation/#AutoLoading

我不清楚的是如何实际加载谷歌地图。

我努力了:

但是地图加载不出来。

奇怪的是,如果我只是autoload=从 URL 中删除“...” - 地图会加载并正常工作。

如果我将autoload=... 保留在 url 中并注释掉手动加载的“ google.load("maps", "2.x");”,它仍然不起作用。

关于如何正确使用自动加载功能以获得最大性能(最小延迟)的任何想法?

0 投票
2 回答
2905 浏览

为什么都是autoload,load_all!并要求所有在active_support.rb 中使用?

我正在寻找active_support.rb尝试了解它使用的加载过程。它使用三种加载方法load_all!autoloadrequire。为什么在同一个文件中使用三种不同的加载方式?

0 投票
1 回答
924 浏览

您如何将 Ruby 应用程序中“require”的完整序列和顺序作为树来跟踪?

如何显示 Ruby 应用程序中发生的“要求”的层次结构?

某些文件需要需要附加文件的文件。

但是,通过在调试模式下运行应用程序,您只会触发所需文件的子集 - 仅触发您的应用程序在任何给定时间点使用的任何功能子集使用的文件。

您如何将应用程序中所有需求的综合层次结构显示为树?

0 投票
3 回答
6865 浏览

Python中的自动加载

过去,我使用 Perl 的 AUTOLOAD 工具来实现将符号延迟加载到命名空间中,并希望在 python 中具有相同的功能。

传统上,您似乎能够获得的最接近的是使用一个类和一个__getattr__类来实现这种事情。但是,我也尝试过在 中翻找sys.modules,并想出了这个:

从用户的角度来看,这确实以我想要的方式工作:

但这让我印象深刻——人们是否倾向于使用标准方法在 python 中自动加载?

其次,对于有经验的 python 开发人员来说,一个问题真的是“这对你来说是好还是坏的做法”?我是一位经验丰富的 Python 开发人员,它让我觉得它真的很有用,但它让我觉得它是边缘性的,并且对这是否可以被视为好的做法、坏做法或类似做法感兴趣。

0 投票
5 回答
8785 浏览

ExtJS:自动加载在 IE 中不起作用

使用 ExtJS 2.2.1,我有一个容器元素,它应该使用以下方法从服务器加载一段 HTML:

这在 Firefox 中运行良好,但对于 IE7,这会导致 ext-all-debug.js 中的第 7170 行出现语法错误:

我通过把这个函数变成这个来解决这个问题:

然后 autoLoad 在两个浏览器中都能正常工作,但是还有一些奇怪的错误,此外,你真的不想在 ExtJS 库中修复这个问题,因为它将无法维护(尤其是在缩小的 ext-all.js 中,它就像一半一行上一兆的 Javascript)。

我还没有找到很多关于这个错误的信息。

我尝试过的变体:

反之亦然,没有<script>标签。HTML 中也没有任何 Javascript,但应该有可能,因为最终我们将在返回的 HTML 中使用 Javascript。

问题不在 HTML 中,因为即使使用最简单的 HTML,错误也是一样的。

更新 - 对多诺万的回应:

使用它的最简单的情况是这个:

这里不涉及数据存储。响应类型也是text\html,而不是 json,因此也不能混淆它。如前所述,它在 Firefox 中运行良好,在 Firefox 中,它也执行相同的eval功能,但没有错误。所以它不像 Firefox 遵循不同的执行路径,它是相同的,但没有eval.