chrome插件-新闻推荐评测插件开发

时间:2022-02-18 17:49:24

    在实现新闻推荐的过程中,需要对推荐算法进行评测来衡量推荐的效果。前期一般通过人工去评测,但是因为是根据网页来推荐的,为了满足随机性和提高效率,开发了基于chrome的插件来对网页的推荐效果进行评测,前期主要是为了解决一些比较明显的问题,比如标题长度,乱码符号等,后期可以切一部分流量进行a/b test来看效果。

   插件的工作流程:

    1. 页面加载完成之后,获取当前url的地址并进行判断,然后向服务器请求该url对应文章的推荐新闻信息。

    2. 对获取到的json数据进行解析,拼接成popup.html中的新闻列表,服务器一般返回10条数据,如果该新闻的信息在数据库中查询不到,返回信息就为空

    3. 根据列表中的新闻列表信息进行评测,将评测信息返回服务器。

    问题总结:

    网上介绍chrome插件开发的比较多而且很详细,而且这个是头一次开发插件,基本也是现学现卖的,只是记录下开发过程中碰到的问题。

    1. 主要的配置文件manifest.json,在其中定义了插件的类型,访问资源权限等信息,比较有用的有permissions,定义所需的网络资源;age_action 主要是对网页的操作,插件图标显示在地址输入栏,如果需要根据特定网址实现相应的操作应该采用这种方法;browser_action 表示对浏览器的操作,图标显示在右边工具栏。default_popup 为点击图标之后弹出的网页。

    2. background.js用来实现插件的主要业务逻辑,这里主要用来向服务器发送请求获取数据的,这里利用ajax请求发送数据,没有跨域的问题,这里有个问题就是定义dataType为json的时候报错,服务端使用fastjson转化的json数据,网上搜了下,貌似两边存在不一致的问题。

    3. popup.js 里面主要是利用background获取的数据进行html节点的拼接,然后弹出,可以在这里利用addEventListener处理点击事件等行为,这里主要在javascript里面定义了带参数的回调函数,将评测的数据发回服务器中。

    在调整popup.html样式上花了不少时间,功能方面的代码不多,所以总体上还是很简单的,但是很好的解决了新闻推荐评测的问题,代码放在https://github.com/yongleixiao/chrome-plugin