Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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
Javascript 机器人是否在React';它的组成部分是什么?_Javascript_Reactjs_Google Analytics_Google Search - Fatal编程技术网

Javascript 机器人是否在React';它的组成部分是什么?

Javascript 机器人是否在React';它的组成部分是什么?,javascript,reactjs,google-analytics,google-search,Javascript,Reactjs,Google Analytics,Google Search,我想知道机器人(例如谷歌搜索引擎爬虫)是否运行客户端JavaScript,从而可以触发ComponentDidMount 我的应用程序有许多配置文件,正在通过在配置文件组件的ComponentDidMount e、 g 但我注意到,我记录的浏览量比谷歌分析中的页面浏览量高出约30% 我的应用程序是服务器端呈现的,没有谷歌爬虫现在可以读取javascript,所以你的前端框架和库工作得非常好。但是,事情并不是那么简单 谷歌机器人会解析你的动态内容,但是如果你从javascript机器人中调用任何A

我想知道机器人(例如谷歌搜索引擎爬虫)是否运行客户端JavaScript,从而可以触发
ComponentDidMount

我的应用程序有许多配置文件,正在通过在配置文件组件的
ComponentDidMount

e、 g

但我注意到,我记录的浏览量比谷歌分析中的页面浏览量高出约30%


我的应用程序是服务器端呈现的,没有
谷歌爬虫现在可以读取javascript,所以你的前端框架和库工作得非常好。但是,事情并不是那么简单

谷歌机器人会解析你的动态内容,但是如果你从javascript机器人中调用任何API(get/post),一般都不会等待它们,因此如果你的大部分内容都是通过API调用来的,机器人不会读取文本


现在来看google analytics,是的componentDidMount()由google爬虫读取。我建议在API调用开始之前,在
componentDidMount()
中首先触发一个事件

搜索机器人不运行javascript——虽然我已经多年没有研究过javascript了,但从00年代开始情况可能已经发生了变化:DGoogle机器人现在可以运行JS了,我对此有所了解,将在15-20分钟内回答,远离laptop@HarkiratSaluja你愿意分享你对这个问题的看法吗?谷歌爬虫似乎不运行
componentDidMount()
。您能看看我的编辑并告诉我您对问题原因的看法吗?您能在
componentDidMount()
中添加一个普通的打印语句吗?bot不能很好地与ajax调用配合使用我认为我无法通过将console.log放入
componentDidMount()
进行调试,因为当bot运行该console.log时,我无法知道是否发生了这种情况。我只是在后端添加了一个guard子句,防止在
用户代理
看起来是bot时增加视图。
class Profile extends React.Component {
    componentDidMount() {
      const { params: { id } } = this.props;
        client.post(`/profile/${id}/views`)
         .catch(err => console.log('Error while incrementing view', err));
    }
    ....
}
app.use((req, res, next) => {
  const ua = req.headers['user-agent'];
  if (isBot(ua)) {
    console.log('BOT DETECTED', req.url, ua);
  } else {
    console.log('not a bot', req.url, ua);
  }
  next();
});
BOT DETECTED /profile/1111 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
not a bot /profile/1111 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
not a bot /profile/1111/views/views Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36