Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery脚本第一次不工作_Jquery_Ajax_Sharepoint_Sharepoint 2010 - Fatal编程技术网

jquery脚本第一次不工作

jquery脚本第一次不工作,jquery,ajax,sharepoint,sharepoint-2010,Jquery,Ajax,Sharepoint,Sharepoint 2010,当我在一天的开始访问一个特定页面时,不会显示任何数据。刷新同一页面后,数据将按其应有的方式显示。如果我在一小时后访问同一页,数据仍将显示。然而,第二天,同样的事情也会发生。当我第一次访问页面时没有数据,但它是在刷新之后出现的 该页面使用带有ajax调用的jquery脚本 该脚本本身在Sharepoint 2010环境中使用,并使用ListData.svc获取数据(名称、id、类型和soforth),获取实际数据似乎不是问题(至少在刷新时) 有人知道为什么会这样吗 守则: <script t

当我在一天的开始访问一个特定页面时,不会显示任何数据。刷新同一页面后,数据将按其应有的方式显示。如果我在一小时后访问同一页,数据仍将显示。然而,第二天,同样的事情也会发生。当我第一次访问页面时没有数据,但它是在刷新之后出现的

该页面使用带有ajax调用的jquery脚本

该脚本本身在Sharepoint 2010环境中使用,并使用ListData.svc获取数据(名称、id、类型和soforth),获取实际数据似乎不是问题(至少在刷新时)

有人知道为什么会这样吗

守则:

<script type="text/javascript">
$(document).ready(function () {

    function getUrlVars() {
        var vars = [], hash;
        var hashes = window.parent.location.href.slice(window.parent.location.href.indexOf('?') + 1).split('&');
        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    }

    var pTypeval = getUrlVars()["projectType"];
    $('#projTypeHeader').append(unescape(pTypeval));

    $.ajax({
        url: "/../Projects/1/_vti_bin/ListData.svc/Projectlist?$select=ID,Projectname,ProjectTypeValue,ProjectHeading,PublishInfoscreen&$filter=(ProjectTypeValue%20eq%20%27" + pTypeval + "%27)%20and%20(PublishInfoscreen%20eq%20true)",
        method: "GET",
        dataType: "JSON",
        headers: { "accept": "application/json; odata=verbose" },
        success: function (data) {
            $('#projectRow').empty();

            $.each(data.d.results, function (index, item) {
                var itemExist = false;
                $.each($('.projectRow').find('h1'), function (index1, item1) {
                    if (item1.innerHTML == item.ProjectHeading) {
                        itemExist = true;
                        $(item1).parent().append("<h3><a id=" + item.ID + " class='projectLink' href='javascript:void(0)'>" + item.Projectname+ "</a></h3>");

                    }
                });
                if (itemExist == false)
                    $('.projectRow').append("<div class='projectHeadingDiv left'><li><h1>" + item.ProjectHeading + "</h1><h3><a id='" + item.ID + "' class='projectLink'  href='javascript:void(0)'>" + item.Projectname+ "</a></h3></div>");
            });
        },
        error: function (error) {
            alert(JSON.stringify(error));
        }
    });

});
</script>

$(文档).ready(函数(){
函数getUrlVars(){
var vars=[],散列;
var hashes=window.parent.location.href.slice(window.parent.location.href.indexOf('?')+1).split('&');
for(var i=0;i”+item.ProjectHeading+”);
});
},
错误:函数(错误){
警报(JSON.stringify(错误));
}
});
});
更新: 根据注释,我尝试将函数getUrlVars()移到document.ready之外,但没有帮助。 但是,今天早上我尝试使用不同的浏览器,在第一次获取时,我遇到了以下错误:

内联网上的网站说: {“readyState”:4,“responseText”:“{\r\n\“error\”:{\r\n“code\”: \“\”,“\”消息\“:{\r\n\”语言\“:\”我们\“,\”值”:\Type “Microsoft.Sharepoint.DataService.ProjectlistItem”没有名为“ID”的属性。\“\r\n}\r\n}\r\r}”,“状态”: 400,“状态文本”:“错误”}


刷新页面并显示数据。这看起来像是在第一次获取时,它无法在列表中找到项目,但在第二次获取后,它工作正常。有什么建议可以解释这一点吗?

SharePoint应用程序池每晚都会循环使用。因此,SharePoint网站一天中的第一次点击可能需要一些时间才能让一切正常运行启动。有些人运行此powershell脚本以持续保持SP服务器处于活动状态。这应该可以解决您在早上访问的Web服务的延迟问题


尝试放置
getUrlVars()
外部功能
文档。准备就绪
我猜服务器在晚上睡觉,你在早上叫醒它,但第一次呼叫超时。你能发布什么错误响应吗?谢谢你的回复。我要到明天早上才能得到错误响应,但一旦收到,我会在这里发布。我也会尝试将getUrlVars()函数置于document.ready之外。@MotiKorets我已使用收到的错误消息更新了原始帖子,因此您的问题似乎更多地与SharePoint有关,而不是与jQuery有关。我建议您适当地标记问题。检查服务器是否有任何睡眠配置。