关闭

WebKit之js解析和执行初始

782人阅读 评论(0) 收藏 举报
分类:
## 测试页面
<html>
<head>
	<title>Test-JSC</title>
	<head>
	<script>
	function on_click()
	{
		alert("hello");
	}
	</script>
	</head>
</head>
<body>
<button onclick="on_click()">Click</button>
</body>
</html>

## 页面加载阶段
JSC::evaluate(exec, source, thisValue, exception);
JSValue JSMainThreadExecState::evaluate(exec, jsSourceCode, shell, &evaluationException);
ScriptValue ScriptController::evaluateInWorld(const ScriptSourceCode& sourceCode, DOMWrapperWorld* world)
ScriptController::evaluate(const WebCore::ScriptSourceCode & sourceCode)
ScriptElement::executeScript()
ScriptElement::prepareScript()
HTMLDocumentParser::runScriptsForPausedTreeBuilder()
HTMLDocumentParser::canTakeNextToken()
HTMLDocumentParser::pumpTokenizerIfPossible()
DecodedDataDocumentParser::appendBytes()
DocumentWriter::addData(const char * str, int len=0, bool flush=true)
DocumentWriter::endIfNotLoadingMainResource()
DocumentWriter::end()

## 调试&&总结
1、页面加载完毕进行到解析阶段时,就会调度JSC执行以上的js的代码,当用户真正点击的button时,
   不会再执行以上解析操作,而是runJavascriptAlert()操作
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:142784次
    • 积分:3971
    • 等级:
    • 排名:第8193名
    • 原创:243篇
    • 转载:159篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论