惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
博客园 - 叶小钗
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
D
Docker
J
Java Code Geeks
B
Blog
G
Google Developers Blog
小众软件
小众软件
博客园 - 聂微东
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
量子位
WordPress大学
WordPress大学
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
腾讯CDC
Martin Fowler
Martin Fowler
V
Visual Studio Blog
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog

博客园 - 名可真难起

CSOM创建Content Type并指定GUID SharePoint还原大体积内容数据库报空间错误的解决办法 SharePoint 2013: Knockout JS + Rest Service展示List数据 SharePoint 2013—创建Master Page 通过SPWeb.EnsureUser将SPUser添加到网站 如何在页面中使用sharepoint中的富文本编辑器控件 通过编程的方式给列表项添加附件 SharePoint 2010 Visual Web Part发布后找不到文件的错误 SharePoint 2010通过Web Service读取和修改Excel文件 SharePoint 2010中Metadata Service 解决SharePoint2010中Excel刷新出错的问题 SharePoint 2007搜索网站开启匿名访问 在Windows 7中如何用另一个用户运行程序 不仅仅是土豆 SharePoint 2010运行环境 最近比较懒 如何在ActionResult中返回XML类型 - 名可真难起 - 博客园 SharePoint 2010 Development Stack SharePoint 2010 Visual Web Part Demo--展示网站中的List.
SharePoint 2010: 取得浏览最多的网站
名可真难起 · 2010-03-22 · via 博客园 - 名可真难起

环境:SharePoint2010 Rc,父站点下有若干个子站点。

客户需求:取得网站中各站点浏览次数排名,并且不能写C#代码(其实就算写,我也不知道从哪调出数据来image )。

题外话:在http://Yoursite/_layouts/WebAnalytics/Report.aspx?t=TopPageForPageReport&l=s这个页面上,可以看到网站哪些页面被浏览次数较多,哪些浏览者浏览次数最多等一系列信息,并且这些数据也可以在2010Log数据库中找到。比如浏览者的信息可以在image

表中找到。但是就是没有找到网站浏览次数的信息。

几经与客户协商无果,只好想别的办法来“欺骗”客户一下。

Web Analytics Web part 中能够搜索浏览最多的内容,并且可以只选择.aspx类型的文件,页面被浏览的最多,那么这个页面所在的站点也就被浏览的最多的(这逻辑可不保证正确!)。

具体做法:在页面放置Web analytics web part,然后设置其属性。当然这个web part放在了一个名叫“topSitesDiv”的div里面。

image

这时候页面显示的内容就是一个个的链接了:

image

至于如何用javascript取得这些链接,并且只抽取里面的站点名字,这就非常简单了。用的是Jquery和jquery.timers-1.1.2.js 2个JS。

     <script type="text/javascript">
         $(function () {
             var urlArray = new Array();
             var innerURL = "";
             $("#topSitesDiv").everyTime(1000, 'controlled', function () {  //为什么要加入这个呢,是因为在document.ready时,web part的内容还没有加载出来,所以要循环执行此处,当web part内容加载完了之后,再替换掉topSteDiv的内容.
                 var outerHtml = document.getElementById("topSitesDiv").outerHTML.toString();
                 if (outerHtml.indexOf('16.gif') < 0) {
                     $("#topSitesDiv li a").each(function () {
                         urlArray.push($(this).attr("href"));
                     });

                    innerURL += " <ul>";
                     $.each(urlArray, function (n, value) {
                         if (n < 10) {
                             innerURL += " <li><a href='" + value + "'>" + value + "</a> </li>";
                         }
                     });
                     innerURL += " </ul>";
                     $("#topSitesDiv").html(innerURL);
                     $("#topSitesDiv").stopTime('controlled', null);
                 }
             });
         });

    </script>

最终效果如下图:

image

哈哈。欺骗了客户一次。期待着Top Sites这个Web Part的正式发布,这样就不用费劲写代码了。

致力于SharePoint开发. QQ:28748451.