C# 我的一些搜索结果没有';本地存储中没有基准

C# 我的一些搜索结果没有';本地存储中没有基准,c#,model-view-controller,typeahead.js,bloodhound,C#,Model View Controller,Typeahead.js,Bloodhound,我已经尝试研究了一段时间,我发现一个人有类似的问题,但他的问题没有解决方案: 我的一些猎犬对象正在本地存储中生成预期结果,但其中两个缺少数据(基准)。即使它们缺少基准部分,其他一切都可以工作。我可以按预期提前键入搜索。我想知道为什么这两个对象没有存储数据 我现在尝试使用cacheKey属性而不是默认值,因此此图像不会显示我使用cacheKey属性 这是我的代码中使用typeahead的一部分。typeahead可以工作,但未存储在本地存储器中: JavaScript: HTML 注意:我似乎远

我已经尝试研究了一段时间,我发现一个人有类似的问题,但他的问题没有解决方案:

我的一些猎犬对象正在本地存储中生成预期结果,但其中两个缺少数据(基准)。即使它们缺少基准部分,其他一切都可以工作。我可以按预期提前键入搜索。我想知道为什么这两个对象没有存储数据

我现在尝试使用cacheKey属性而不是默认值,因此此图像不会显示我使用cacheKey属性

这是我的代码中使用typeahead的一部分。typeahead可以工作,但未存储在本地存储器中:

JavaScript: HTML
注意:我似乎远远没有超过localstorage max storage

我终于找到了它不存储在本地存储中的原因。原因是超过了本地存储的最大存储空间。我发现在存储的数据段的末尾有一个trie属性,它与它一起存储。即使您的列表只有3000个元素,附带的trie也足以占用大量存储空间。所以有未知的开销


崔:它似乎是用来搜索的树。我想要一种只存储数据部分的方法,并且总是在客户端生成树。这样我们就可以在本地存储上存储更多的东西。如果不将此作为默认设置,PreTech的目的就是不调用服务器。我知道该树正在客户端构建,但我们不需要将其保存在本地存储中。

我终于找到了它不存储在本地存储中的原因。原因是超过了本地存储的最大存储空间。我发现在存储的数据段的末尾有一个trie属性,它与它一起存储。即使您的列表只有3000个元素,附带的trie也足以占用大量存储空间。所以有未知的开销

崔:它似乎是用来搜索的树。我想要一种只存储数据部分的方法,并且总是在客户端生成树。这样我们就可以在本地存储上存储更多的东西。如果不将此作为默认设置,PreTech的目的就是不调用服务器。我知道正在客户端构建树,但我们不需要将其保存在本地存储中

var sections = new Bloodhound({
    datumTokenizer: function (d) {
        $(".loadingSections").hide();
        var namepartTokens = Bloodhound.tokenizers.nonword(d);
        var nameTokens = Bloodhound.tokenizers.whitespace(d);
        var allTokens = namepartTokens.concat(nameTokens);

        return allTokens;
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: {
        url: classLookUp,
        cacheKey: 'sectionLookUp'
    }
});

sections.initialize();

$(".section-lookup .typeahead").typeahead({ highlight: true }, {
    source: sections.ttAdapter()
});
...
<script>
    var classLookUp = '@Url.Action("GetClassNames", "Home")';
    ...
</script>
...
 <div class="form-group section-lookup">
     <div class="loadingSections"></div>
     <label class="control-label col-sm-2">Section:</label>
     <div class="col-sm-10">
         @Html.TextBoxFor(x => x.DisplayName, new { @class = "form-control typeahead", @id = "editLookup", @placeholder = "ex. 15/FA CIS-131-102" })
     </div>
</div>
<button type="button" id="editSearch" class="btn btn-primary col-sm-offset-4 col-sm-4">Search for Course</button>
 [HttpGet]
 public ActionResult GetClassNames()
 {
     try
     {
         var newSections = this.repo.Courses;
         var names = newSections.Select(course => course.DisplayName).ToList();
         return this.Json(names, JsonRequestBehavior.AllowGet);
     }
     catch (DatabaseConnectionException)
     {
         return this.Json(new { failure = true }, JsonRequestBehavior.AllowGet);
     }
 }