发明内容
本发明的主要目的在于提供一种用于网站分享的分享方法和装置,以解决网站的分享功能完全依赖于分享功能提供网站的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种用于网站分享的分享方法。该方法包括:在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息,并同步跳转至社交媒体的分享平台以分享上述被分享内容,其中,上述被分享内容为来自上述网站的分享内容。
进一步地,在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息包括:在网站的分享功能被触发时,分享功能提供网站向上述远程服务器发送异步请求;以及上述远程服务器接收来自上述分享功能提供网站的上述异步请求,并先将上述被分享内容的分享信息记录在缓存中,再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中。
进一步地,再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中之前,上述分享方法包括:判断上述被分享内容的分享信息的记录条数是否达到预设值,其中,在判断出上述被分享内容的分享信息的上述记录条数达到上述预设值时,执行将上述记录的被分享内容的分享信息由上述缓存插入到数据库中的步骤。
进一步地,再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中之前,上述分享方法包括:判断记录上述被分享内容的分享信息的时间点是否达到预设时间点,其中,在判断出记录上述被分享内容的分享信息的上述时间点达到上述预设时间点时,执行将上述记录的被分享内容的分享信息由上述缓存插入到数据库中的步骤。
进一步地,在先将上述被分享内容的分享信息记录在缓存中之前,上述分享方法包括:上述远程服务器对来自上述分享功能提供网站的上述异步请求进行权限验证,其中,在上述远程服务器对来自上述分享功能提供网站的上述异步请求权限验证合法时,执行先将上述被分享内容的分享信息记录在缓存中的步骤。
为了实现上述目的,根据本发明的另一方面,提供了一种用于网站分享的分享装置。该装置包括:请求单元,用于在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息;以及跳转单元,用于同步跳转至社交媒体的分享平台以分享上述被分享内容,其中,上述被分享内容为来自上述网站的分享内容。
进一步地,上述请求单元包括:请求模块,用于使得在网站的分享功能被触发时,分享功能提供网站向上述远程服务器发送异步请求,响应模块,包括:接收子模块,用于使得上述远程服务器接收来自上述分享功能提供网站的上述异步请求;缓存子模块,用于先将上述被分享内容的分享信息记录在缓存中;插入子模块,用于再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中。
进一步地,上述响应模块还包括:第一判断子模块,用于再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中之前,判断上述被分享内容的分享信息的记录条数是否达到预设值,其中,在判断出上述被分享内容的分享信息的上述记录条数达到上述预设值时,执行上述插入子模块的功能。
进一步地,上述响应模块还包括:第二判断子模块,用于再在记录的被分享内容的分享信息达到预设条件时,将上述记录的被分享内容的分享信息由上述缓存插入到数据库中之前,判断记录上述被分享内容的分享信息的时间点是否达到预设时间点,其中,在判断出记录上述被分享内容的分享信息的上述时间点达到上述预设时间点时,执行上述插入子模块的功能。
进一步地,上述响应模块还包括:权限验证子模块,用于使得在先将上述被分享内容的分享信息记录在缓存中之前,上述远程服务器对来自上述分享功能提供网站的上述异步请求进行权限验证,其中,在上述远程服务器对来自上述分享功能提供网站的上述异步请求权限验证合法时,执行上述缓存子模块的功能。
通过本发明,采用在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息,并同步跳转至社交媒体的分享平台以分享被分享内容,其中,被分享内容为来自网站的分享内容,解决了网站的分享功能完全依赖于分享功能提供网站的问题,进而达到了避免网站的分享功能完全依赖于分享功能提供网站的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在详细介绍本发明之前,先将下文将要涉及到的术语如下:
分享次数:是指网民将网站上的具体内容分享到了社交媒体的次数。比如,网民A每次将“中国政府网首页”分享到网民A的个人微博上(如,新浪微博、腾讯微博等),中国政府网首页的分享次数都会增加1。
分享功能提供网站:用于提供可供该网站站长使用的分享插件,该分享插件是由除待分享网站(如,中国政府网)和社交媒体(如,新浪微博、腾讯微博等)之外的第三方提供的。在将这些分享插件嵌入待分享网站之后,就能将待分享网站上的内容分享到各个社交媒体上。
待分享网站:嵌入了前述的分享插件的网站。
根据本发明的实施例,提供了一种用于网站分享的分享方法。该用于分享事件的分享方法可以运行在计算机处理设备上。
图1是根据本发明实施例的用于网站分享的分享方法的流程图。如图1所示,该方法包括如下的步骤S102至步骤S104:
步骤S102,在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息。
在实施时,可以预先在待分享网站上安装分享插件,这样,在网民想要分享待分享网站上的内容时,就可以直接点击该分享插件,实现将待分享事件分享至某个社交媒体的第一步。其中,在被点击时,分享插件即已经被触发;在未被点击时,分享插件则未被触发(即,空闲)。分享插件被触发即为网站的分享功能被触发。
远程服务器也即远程计数服务器,是由分享功能提供网站专门配置的用于记录网站的分享次数的远程服务器。远程服务器在配置完成后,如果网站的分享功能被触发,则分享功能提供网站通过Ajax方法发送Ajax异步请求来调用远程服务器,此时,远程服务器可以完整地记录一次网民的分享行为,即什么时间将什么内容分享到什么平台。也即,远程服务器可以记录以下分享信息:要分享到的社交媒体的分享平台、被分享的URL路径、被分享内容和分享时间等。
步骤S104,同步跳转至社交媒体的分享平台以分享被分享内容。
其中,被分享内容为来自网站的分享内容,包括网站本身、网站上的各个页面、网站上各个页面上的部分或者全部内容。此处的网站为待分享网站。
具体地,在网站的分享功能被触发时,分享功能提供网站异步请求远程服务器记录被分享内容的分享信息,并同步将待分享网站的网页跳转至社交媒体的分享平台的分享网页,这样,分享平台可以根据接收到的接口参数(如,被分享内容和分享时间等)对被分享内容进行分享。
通过本发明实施例,由于采用了异步请求分享记录和同步分享被分享内容的方式,并且只要网民触发了网站上的分享功能,就会触发Ajax方法来调用远程服务器,实现分享记录;同时也会将当前网页跳转至分享平台,并且按照要求传入接口参数,实现被分享内容的分享,从而使得记录和分享分开执行,达到了避免网站的分享功能完全依赖于分享功能提供网站的效果。
需要说明的是,在本发明实施例中,采用Ajax技术虽然能够实现异步记录的目的,但是由于执行记录时,Ajax技术需要频繁的请求远程服务器,这样,会给远程服务器带来极大的效率问题和运维风险。
为了解决Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的问题,本发明进一步创造性的提出了先缓存记录,在记录达到一定条件时再将其批量入库的技术。
也即,优选地,在本发明实施例中,在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息可以包括:
S2,在网站的分享功能被触发时,分享功能提供网站向远程服务器发送异步请求;
S4,远程服务器接收来自分享功能提供网站的异步请求,并先将被分享内容的分享信息记录在缓存中,再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中。
也即,在远程服务器每次记录到分享信息时,并不是立即将该次记录到的分享信息写入数据库中,而是先将其存储在内存计数表中进行缓冲,再在内存计数表中的缓存信息达到一定的数量或者再在缓存时间达到规定的时间时,批量将缓存的记录结果插入到数据库中。这样,不仅使得内存计数表中记录的缓冲数据与数据库中记录的分享信息的数据完全一样,而且可以将多次数据库请求转化为一次数据库请求,克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点。
需要说明的是,通过本发明实施例,还可以对数据库中的分享数据(即,被分享内容的分享信息)进行统计,从而不但能够得出具体的网站被分享的次数,还能够得出各个网站的具体页面被分享的次数,以及具体的网站和/或各个网站的具体页面被分享到各个分享平台的具体次数等详细信息。
优选地,在本发明实施例中,再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中之前,该分享方法可以包括:
S6,判断被分享内容的分享信息的记录条数是否达到预设值,其中,在判断出被分享内容的分享信息的记录条数达到预设值时,执行将记录的被分享内容的分享信息由缓存插入到数据库中的步骤。
需要说明的是,在本发明实施例中,在将记录的被分享内容的分享信息由缓存插入到数据库中之后,进一步优选地,可以将缓存记录结果(即,被分享内容的分享信息)的内存计数表清空,以便记录之后被分享内容的分享信息,达到了重复利用内存计数表的效果。
例如,当分享功能提供网站的远程服务器记录在内存计数表中的记录结果的行数达到一定值(如,10000)时,可以批量将记录结果插入数据库中,并清空内存计数表。这样,就将原本需要10000次的数据库请求转化为1次数据库请求,克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点。
需要说明的是,在本发明实施例中,采用上述的定量将记录结果插入数据库的方式虽然能够克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点,但是由于不是所有的时间段都会产生比较集中的记录结果,因此定量将记录结果插入数据库的方式无法保证数据库存储记录结果的时效性。
为了数据库存储记录结果的时效性,优选地,在本发明实施例中,再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中之前,该分享方法可以包括:
S8,判断记录被分享内容的分享信息的时间点是否达到预设时间点,其中,在判断出记录被分享内容的分享信息的时间点达到预设时间点时,执行将记录的被分享内容的分享信息由缓存插入到数据库中的步骤。
需要说明的是,在本发明实施例中,在将记录的被分享内容的分享信息由缓存插入到数据库中之后,进一步优选地,可以将缓存记录结果(即,被分享内容的分享信息)的内存计数表清空,以便记录之后被分享内容的分享信息,达到了重复利用内存计数表的效果。
通过本发明实施例,当分享功能提供网站的远程服务器在规定的时间点,例如,每个小时的0分、20分和40分,都可以将内存计数表中的记录结果批量插入数据库中的分享数据记录表中,然后清空内存计数表。这样,即使某一时段分享请求很少,也即,即使很长一段时间内存计数表中的记录条数达不到上一实施例中所规定的预设值,采用定时将记录结果批量插入数据库也能保证数据库存储记录结果的时效性。
优选地,在本发明实施例中,在先将被分享内容的分享信息记录在缓存中之前,该分享方法可以包括:
S10,远程服务器对来自分享功能提供网站的异步请求进行权限验证,其中,在远程服务器对来自分享功能提供网站的异步请求权限验证合法时,执行先将被分享内容的分享信息记录在缓存中的步骤。
需要说明的是,分享功能提供网站除了提供上述的接口参数之外,还公布异步请求的密钥。这样,远程服务器可以通过该密钥对来自分享功能提供网站的异步请求进行权限验证,并且在验证合法后,先将Ajax传来的被分享内容的分享信息存储在内存计数表中,再在达到预设条件时,将这些被分享内容的分享信息批量插入数据库中。
这样,可以过滤掉了人为造假数据(即,认为模拟异步请求),以防这些人为造假数据误导网站管理者。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明的实施例,提供了一种用于网站分享的分享装置。需要说明的是,本发明实施例所提供的用于网站分享的分享方法可以通过本发明实施例的用于网站分享的分享装置来执行,本发明实施例的用于网站分享的分享装置也可以用于执行本发明实施例的用于网站分享的分享方法。
图2是根据本发明实施例的用于网站分享的分享装置的示意图。如图2所示,该装置包括:请求单元10和跳转单元20。
请求单元10用于在网站的分享功能被触发时,异步请求远程服务器记录被分享内容的分享信息。
在实施时,可以预先在待分享网站上安装分享插件,这样,在网民想要分享待分享网站上的内容时,就可以直接点击该分享插件,实现将待分享事件分享至某个社交媒体的第一步。其中,在被点击时,分享插件即已经被触发;在未被点击时,分享插件则未被触发(即,空闲)。分享插件被触发即为网站的分享功能被触发。
远程服务器也即远程计数服务器,是由分享功能提供网站专门配置的用于记录网站的分享次数的远程服务器。远程服务器在配置完成后,如果网站的分享功能被触发,则分享功能提供网站通过Ajax方法发送Ajax异步请求来调用远程服务器,此时,远程服务器可以完整地记录一次网民的分享行为,即什么时间将什么内容分享到什么平台。也即,远程服务器可以记录以下分享信息:要分享到的社交媒体的分享平台、被分享的URL路径、被分享内容和分享时间等。
跳转单元20用于同步跳转至社交媒体的分享平台以分享被分享内容,其中,被分享内容为来自网站的分享内容。
其中,被分享内容为来自网站的分享内容,包括网站本身、网站上的各个页面、网站上各个页面上的部分或者全部内容。此处的网站为待分享网站。
具体地,在网站的分享功能被触发时,分享功能提供网站异步请求远程服务器记录被分享内容的分享信息,并同步将待分享网站的网页跳转至社交媒体的分享平台的分享网页,这样,分享平台可以根据接收到的接口参数(如,被分享内容和分享时间等)对被分享内容进行分享。
通过本发明实施例,由于采用了异步请求分享记录和同步分享被分享内容的方式,并且只要网民触发了网站上的分享功能,就会触发Ajax方法来调用远程服务器,实现分享记录;同时也会将当前网页跳转至分享平台,并且按照要求传入接口参数,实现被分享内容的分享,从而使得记录和分享分开执行,达到了避免网站的分享功能完全依赖于分享功能提供网站的效果。
需要说明的是,在本发明实施例中,采用Ajax技术虽然能够实现异步记录的目的,但是由于执行记录时,Ajax技术需要频繁的请求远程服务器,这样,会给远程服务器带来极大的效率问题和运维风险。
为了解决Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的问题,本发明进一步创造性的提出了先缓存记录,在记录达到一定条件时再将其批量入库的技术。
也即,优选地,在本发明实施例中,该请求单元可以包括:请求模块和响应模块。其中,响应模块又可以包括:接收子模块、缓存子模块和插入子模块。请求模块用于使得在网站的分享功能被触发时,分享功能提供网站向远程服务器发送异步请求;接收子模块用于使得远程服务器接收来自分享功能提供网站的异步请求;缓存子模块用于先将被分享内容的分享信息记录在缓存中;插入子模块用于再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中。
也即,在远程服务器每次记录到分享信息时,并不是立即将该次记录到的分享信息写入数据库中,而是先将其存储在内存计数表中进行缓冲,再在内存计数表中的缓存信息达到一定的数量或者再在缓存时间达到规定的时间时,批量将缓存的记录结果插入到数据库中。这样,不仅使得内存计数表中记录的缓冲数据与数据库中记录的分享信息的数据完全一样,而且可以将多次数据库请求转化为一次数据库请求,克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点。
需要说明的是,通过本发明实施例,还可以对数据库中的分享数据(即,被分享内容的分享信息)进行统计,从而不但能够得出具体的网站被分享的次数,还能够得出各个网站的具体页面被分享的次数,以及具体的网站和/或各个网站的具体页面被分享到各个分享平台的具体次数等详细信息。
优选地,在本发明实施例中,该响应模块还可以包括:第一判断子模块。第一判断子模块用于再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中之前,判断被分享内容的分享信息的记录条数是否达到预设值,其中,在判断出被分享内容的分享信息的记录条数达到预设值时,执行插入子模块的功能。
需要说明的是,在本发明实施例中,在将记录的被分享内容的分享信息由缓存插入到数据库中之后,进一步优选地,可以将缓存记录结果(即,被分享内容的分享信息)的内存计数表清空,以便记录之后被分享内容的分享信息,达到了重复利用内存计数表的效果。
例如,当分享功能提供网站的远程服务器记录在内存计数表中的记录结果的行数达到一定值(如,10000)时,可以批量将记录结果插入数据库中,并清空内存计数表。这样,就将原本需要10000次的数据库请求转化为1次数据库请求,克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点。
需要说明的是,在本发明实施例中,采用上述的定量将记录结果插入数据库的方式虽然能够克服了Ajax技术频繁请求远程服务器而导致远程服务器效率低和运维风险大的缺点,但是由于不是所有的时间段都会产生比较集中的记录结果,因此定量将记录结果插入数据库的方式无法保证数据库存储记录结果的时效性。
为了数据库存储记录结果的时效性,该响应模块还可以包括:第二判断子模块。第二判断子模块用于再在记录的被分享内容的分享信息达到预设条件时,将记录的被分享内容的分享信息由缓存插入到数据库中之前,判断记录被分享内容的分享信息的时间点是否达到预设时间点,其中,在判断出记录被分享内容的分享信息的时间点达到预设时间点时,执行插入子模块的功能。
需要说明的是,在本发明实施例中,在将记录的被分享内容的分享信息由缓存插入到数据库中之后,进一步优选地,可以将缓存记录结果(即,被分享内容的分享信息)的内存计数表清空,以便记录之后被分享内容的分享信息,达到了重复利用内存计数表的效果。
通过本发明实施例,当分享功能提供网站的远程服务器在规定的时间点,例如,每个小时的0分、20分和40分,都可以将内存计数表中的记录结果批量插入数据库中的分享数据记录表中,然后清空内存计数表。这样,即使某一时段分享请求很少,也即,即使很长一段时间内存计数表中的记录条数达不到上一实施例中所规定的预设值,采用定时将记录结果批量插入数据库也能保证数据库存储记录结果的时效性。
优选地,在本发明实施例中,该响应模块还可以包括:权限验证子模块。权限验证子模块用于使得在先将被分享内容的分享信息记录在缓存中之前,远程服务器对来自分享功能提供网站的异步请求进行权限验证,其中,在远程服务器对来自分享功能提供网站的异步请求权限验证合法时,执行缓存子模块的功能。
需要说明的是,分享功能提供网站除了提供上述的接口参数之外,还公布异步请求的密钥。这样,远程服务器可以通过该密钥对来自分享功能提供网站的异步请求进行权限验证,并且在验证合法后,先将Ajax传来的被分享内容的分享信息存储在内存计数表中,再在达到预设条件时,将这些被分享内容的分享信息批量插入数据库中。
这样,可以过滤掉了人为造假数据(即,认为模拟异步请求),以防这些人为造假数据误导网站管理者。
从以上的描述中,可以看出,本发明实现了如下技术效果:通过Ajax技术进行异步统计分享次数,能够提高网民分享网站的响应效率,改善网站分享的交互感受,同样使网站减少对分享功能提供网站的依赖,从而实现即使分享功能提供网站不能访问,网站的分享功能可以照常使用的目的。并且克服了由于Ajax频繁写入数据库给服务器带来的效率问题和运维风险。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。