gpt4 book ai didi

javascript - ajax solr问题

转载 作者:行者123 更新时间:2023-11-30 07:48:08 28 4
gpt4 key购买 nike

我遵循了 ajax solr 教程,并在第一步中编写了这段代码。

header.php:

<script type="text/javascript" src="static/js/ajax-solr/core/Core.js"></script>
<script type="text/javascript" src="static/js/ajax-solr/core/AbstractManager.js"></script>
<script type="text/javascript" src="static/js/ajax-solr/managers/Manager.jquery.js"></script>
<script type="text/javascript" src="static/js/ajax-solr/core/Parameter.js"></script>
<script type="text/javascript" src="static/js/ajax-solr/core/ParameterStore.js"></script>
<script type="text/javascript" src="static/js/reuters.js"></script>

路透社:

var Manager;

(function ($) {
$(function () {
Manager = new AjaxSolr.Manager({
solrUrl: 'http://localhost/solr/select'
});
Manager.init();
});
})(jQuery);

// build query
Manager.store.addByValue('q', '*:*');

// do request
Manager.doRequest();

但是当我运行它时, Firebug 说 Manager.store.addByValue('q', ':');未定义。

怎么会呢?我已正确添加所有库。

最佳答案

我猜你的脚本应该更像这样。

在您的情况下,最后一个 to 语句在“就绪”函数之外,因此可能会在 AjaxSolr 库完成加载之前运行。

var Manager;

(function ($) {

$(function () {
Manager = new AjaxSolr.Manager({
solrUrl: 'http://example.solrstuff.org/solrjs/select'
});
Manager.init();
//moved the next two calls inside the initialization block
Manager.store.addByValue('q', '*:*');
Manager.doRequest();
});

})(jQuery);

回答评论中的问题(与实际问题无关,如果你自己看懂代码就跳过)

内部 $(function (){...}); 只是 $(document).ready(function (){...}) 的简写;

外层函数:(function($){ })(jQuery); 定义了一个匿名的未命名函数 function($){ } 带有一个参数并立即调用传入 jQuery 对象作为参数的函数。所以 $ 里面是 jQuery 对象。我猜他们使用这种语法是因为 AjaxSolr 与框架无关,当您使用其他框架时,您只需将 (...)(jQuery) 替换为 (...)(otherFrameworkObjectInstance)

所以只是(几乎)下面的一个更高级的版本

var Manager
var myFunction = function ($) {
$(function () {
Manager = new AjaxSolr.Manager({
solrUrl: 'http://example.solrstuff.org/solrjs/select'
});
Manager.init();
Manager.store.addByValue('q', '*:*');
Manager.doRequest();
});
};

myFunction(jQuery);

但这会给您留下一个无用的变量 myFunction,它指的是您无论如何只运行一次的函数。而且这种风格也类似于jQuery Plugin最佳实践的样子

关于javascript - ajax solr问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1906379/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com